- 博客(161)
- 资源 (2)
- 收藏
- 关注

原创 iOS中的多线程开发技术第一篇(GCD)
多线程编程是现代应用程序开发中的一个重要部分,尤其是在 iOS 开发中,它可以帮助我们提高应用的性能和响应速度。iOS 提供了多种多线程编程技术,包括 GCD(Grand Central Dispatch)、NSThread、NSOperation 和 pthreads。本文将详细介绍这些多线程技术,帮助你理解并掌握它们的使用。
2024-07-24 02:21:14
1292

原创 Flutter禁止及交互的两种方式
这是我知道的两种禁止点击事件的方法,两种方式都可以实现禁止点击事件的效果,可以根据需要来选择,如果你有其他的方法,可以给笔者留言,大家一起学习,一起进步。
2020-07-02 00:08:34
5561
1

原创 Flutter实现iOS TabBarController效果和android TabHost效果
先上截图, 如何实现下图的效果呢。对于iOS开发者,我们可以使用UITabBarController来实现,对于android开发者,我们可以使用FragmentTabHost来实现。在Flutter中并没有这两个控件,进入正题,我们看看在Flutter中我们如何使用Flutter中的PageView来实现这种效果。
2020-06-22 09:43:31
1030
1

原创 UIScrollView的Content Size, Content Inset属性
做iOS有好长时间了,今天再次写到UIScrollView的时候再次遇到了ContentSize,ContentInset,Scroll Indicator等属性,想起刚刚入门的时候的困惑,决定把它写下来,做个记录,以后忘记的时候也可以温故知新。也希望给初学者一个好的借鉴,少走点弯路,嘿嘿,不多说了,进入正题,第一次写博客,语言组织可能不太好,如果错误或者说的不准确的地方还望各位大神们多多指正。
2014-12-27 16:15:26
1663
1
原创 Swift中的frozen关键字
它通过限制类型的继承和扩展,允许编译器做出更为积极的优化。它的作用是告诉编译器,某个类或结构体是不可扩展的,意味着这个类型不会再被子类化或修改,这样编译器可以做出一些优化。
2025-03-18 03:23:23
287
原创 RxSwift 学习笔记第五篇之RxSwift中的操作符
在 RxSwift 中,Operator(操作符)用于对数据流进行处理,使得异步编程更加直观和易读。Operators 是 Rx 的核心组成部分,它们使得你能够通过链式调用对数据流进行转换、过滤、组合等操作。RxSwift 的 Operators 让开发者能够更轻松地处理异步事件,提高代码的可读性和维护性。本文将介绍 RxSwift 中常见的几种操作符,并通过示例展示它们的使用场景,帮助你更好地掌握 RxSwift 中 Operator 的运用。一、Operator 的使用场景。
2025-03-18 02:52:55
761
原创 RxSwift 学习笔记第四篇之RxSwift在项目中的简单应用
在上面的两篇文章中,我们了解到了RxSwift中的Observable和Observer,本篇文章我们主要介绍下RxSwift项目中的使用。
2025-03-17 22:40:16
501
原创 RxSwift 学习笔记第三篇之RxSwift的Observer
在 RxSwift 中,订阅者(Subscriber) 负责接收 Observable 发送的数据流并对其进行处理。没有订阅者时,Observable 不会被触发(Hot Observable 除外)。分析:订阅后 Observable 开始执行订阅者 subscribe 收到 next 事件,然后 completed我们可以调用观察者的subscribe直接订阅。特点:event 可能是 .next(value), .error(error), .completed。
2025-03-16 04:25:15
994
原创 Swift 中 associatedtype 的用法详解
在 Swift 的协议中,我们无法直接使用泛型 <T>,但可以使用 associatedtype 关键字来声明一个占位类型,让协议在不确定具体类型的情况下仍然能够正常使用。
2025-03-15 00:51:56
899
原创 RxSwift 学习笔记之RxSwift的调试
在 RxSwift 中,调试(debug)是非常重要的,尤其是当你的流变得非常复杂时。RxSwift 提供了很多有用的工具和操作符来帮助你在开发过程中进行调试和跟踪事件流。一、RxSwift 中的调试工具。
2025-03-14 04:23:24
450
原创 RxSwift 学习笔记第二篇之Observables
这篇博客主要介绍Observables的用法。是 Rx的核心。在 Rx中我们看到“”、“”和“Sequence”在 Rx 中互换使用,其实它们是一个东西。在RxSwift 中,我们把它们统一成为序列。发出事件(数据流)被订阅响应事件.next(value):发送一个可能的值.error(error):发送错误,流终止.completed:完成,流终止。
2025-03-14 00:38:00
1238
原创 二级公共基础之数据结构与算法篇(二)线性表及其顺序存储结构
线性表(Linear List)是数据结构中的一种基本结构,它是由相同类型的数据元素构成的线性序列。线性表中的每个元素(除了第一个和最后一个)都有唯一的前驱和后继。线性表的特点是元素之间的关系是线性的,即每个元素(除第一个外)都有一个直接前驱,每个元素(除最后一个外)都有一个直接后继。
2025-02-23 01:49:56
41
原创 二级公共基础之数据结构与算法篇(三)栈和队列(顺序存储结构表示)
栈(Stack)是一种特殊的线性表,它所有的插入和删除都限定在表的同一端进行。允许插入和删除的一端称为栈顶。不允许插入和删除的一端称为栈底。当栈中没有数据元素时,称为空栈。队列(Queue)是一种特殊的线性表,它所有的插入都在表的一端进行,所有的删除都在表的另一端进行。- 允许插入的一端称为队尾。- 允许删除的一端称为队头。- 当队列中没有数据元素时,称为空队列。
2025-02-23 01:33:06
139
原创 二级公共基础之数据结构与算法篇(四)线性链表
当我们使用线性表的顺序结构存储线性表的时候,具有随机访问速度快、存储效率高、实现简单、内存管理方便、缓存命中率高等特点。这篇博客主要介绍下使用链式存储结构表示线性表。
2025-02-23 01:06:27
42
原创 二级公共基础之数据结构与算法篇(五)树和二叉树
这篇博客主要介绍树和二叉树。树是一种常见的数据结构,广泛应用于计算机科学和工程领域,如文件系统、数据库索引、表达式解析等。二叉树是树的一种特殊形式,具有许多独特的性质和应用。二叉树可以为空,也可以由一个根节点和两个互不相交的子树组成,分别称为左子树和右子树。
2025-02-22 21:27:17
837
原创 二级公共基础之数据结构与算法篇(七)排序技术
排序是数据处理的重要内容。所谓排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。排序的方法有很多,根据待排序序列的规模以及对数据处理的要求,可以采用不同的排序方法。本节主要介绍一些常用的排序方法。
2025-02-21 05:35:44
778
原创 二级公共基础之数据结构与算法篇(六)查找技术
查找就是在某种数据结构中,找出满足指定条件的元素。查找是插入和删除等运算的基础,是数据处理的重要内容。由于数据结构是算法的基础,因此,对于不同的数据结构,应选用不同的查找算法,以获得更高的查找效率。本节将对顺序查找和二分法查找的概念进行详细说明。
2025-02-21 03:59:50
37
原创 Java 中的抽象类和接口详解以及易考知识点
在 Java 中,抽象类(abstract class)和接口(interface)是面向对象编程中常用的机制,主要用于 定义规则、抽象共性、提高代码复用性。它们虽然有相似之处,但在使用上有很大的区别。1.什么是抽象类抽象类是使用 abstract 关键字修饰的类,不能直接实例化,通常用于定义一些通用行为,供子类继承并实现。1.抽象类的特点Java中抽象类的特点如下:✅可以有普通方法(带具体实现的方法)。✅可以有抽象方法(没有方法体,需子类实现)。✅可以有成员变量。
2025-02-19 07:51:28
28
原创 Java中的String类的易错题
在 Java 中,String 类用于表示字符串,是 Java 最常用的类之一。String是不可变的(immutable),即字符串一旦创建,其值就无法更改。这篇博客主要介绍Java中的String类的用法。1.String 的基本特点不可变性(Immutable):一旦创建,字符串对象的值就无法更改。存储在字符串常量池(String Pool):字符串字面量会被存储在JVM的字符串池中,避免重复创建。支持字符串操作:提供了丰富的方法,如拼接、比较、查找、替换等。
2025-02-19 07:28:49
47
原创 Java 中的 static 和 final 关键字详解 [特殊字符]
在 Java 中,static 和 final 是两个常用的关键字,它们分别用于控制类、方法和变量的行为,在不同的场景下具有不同的作用。1.static 关键字static关键字用于修饰变量、方法、代码块、内部类,表示它属于类本身,而不是某个具体的对象。1.static变量(静态变量)静态变量属于类而非实例,所有对象共享一个静态变量。// 静态变量,所有实例共享count++;
2025-02-19 04:46:57
161
原创 Java中的内部类知识点以及常错题
在 Java 中,内部类(Inner Class) 是定义在另一个类内部的类。它能够访问外部类的所有成员,包括 private 变量,通常用于逻辑上紧密相关的类,以提高封装性和可读性。
2025-02-19 04:33:07
21
原创 二级公共基础之数据结构与算法篇(一)数据结构的基本概念
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考栈(Stack)是一种受限的线性数据结构,它遵循后进先出(LIFO, Last In First Out)的原则,即最后插入的元素最先被移除。可以把栈想象成一个只能从**一端(栈顶,Top)**进行插入和删除操作的容器。
2025-02-10 21:27:27
20
原创 二级公共基础之数据结构与算法(一)
这篇文章主要介绍Java中的算术运算符和算术表达式。1.Java 中的算术运算符和算术表达式在 Java 语言中,算术运算符(Arithmetic Operators) 是最基础的运算符之一,主要用于执行数学计算。算术运算符可以与 整数(int, long)、浮点数(float, double) 等数值类型配合使用。本文将详细介绍 Java 中的算术运算符、运算符的优先级以及算术表达式的用法。1.Java 中的算术运算符。
2025-02-09 14:02:26
843
原创 cocoapods库引用图片资源的全流程(超详细)
我们在开发过程中,常常会使用第三方库或者使用cocoapods创建的自己的私有库,有时候我们需要用到一些图片资源,今天这个教程从创建开始展示下cocoapods私有库引用私有库的完整流程。1.创建私有 Pod 库1.1 创建 Pod 库首先我们在自己的电脑上选择一个目录,然后使用CocoaPods 的 pod lib create 命令创建一个新的 Pod 库,具体的操作过程如下:以笔者的电脑为例,我想在桌面上创建一个cocoapods私有库,首先进入终端,cd 到桌面目录:cd desktop。
2025-02-07 21:38:17
64
原创 iOS开发设计模式篇第二篇MVVM设计模式
在本文的代码中,我们提供一个初始化的方法,把Model中的数据转成要展示的name和age属性,同时我们通过KVO的方式监听UserModel中的变化,实时获取变化之后的最新值。MVVM 是一种强大的设计模式,在 iOS 开发中,特别是复杂的应用程序中,它能显著提高代码的可维护性和扩展性。ViewModel(视图模型层):负责将 Model 转化为 View 可以使用的数据,同时接收 View 的操作并更新 Model。在本文的例子中,Model表示示例中使用到的数据模型,即用户名和年龄。
2025-01-23 01:15:30
1267
原创 常用排序算法之插入排序
插入排序(Insertion Sort)是一种简单且直观的排序算法,常用于小规模数据的排序或作为其他复杂排序算法的一部分(如快速排序的小数组优化)。本文将详细介绍插入排序的基本原理、实现代码、时间复杂度及其适用场景,帮助你轻松掌握这一算法。
2025-01-21 02:17:13
806
原创 iOS中的多线程开发技术第四篇之IO操作
在 iOS 开发中,数据访问的多线程环境非常普遍,例如缓存系统、数据库查询、文件操作等。对于多读少写的场景,设计一个高效且线程安全的方案至关重要。本文将深入介绍多读少写的设计思想,并结合实际代码示例进行详细讲解。
2024-12-05 01:41:31
839
原创 深入理解Flutter生命周期函数之StatefulWidget(一)
在Flutter中,生命周期函数是管理StatefulWidget状态的关键机制。通过生命周期函数,我们可以控制Widget的初始化、更新和销毁过程,使得应用的状态管理和资源控制更加灵活。本文将详细介绍Flutter中的生命周期函数,帮助你更好地掌握Flutter应用的生命周期。
2024-11-15 05:22:39
1759
原创 Dart中的一些常用注解
在 Flutter 中,Dart 提供了多种注解用于增强代码的表达能力,帮助编译器或分析工具理解代码结构,提升可读性和安全性。标识一个参数是必填的,用在函数或构造函数的命名参数中。当参数使用了 @required,如果调用时未传递该参数,分析器将发出警告。// title 是必填参数注意:@required 已经被废弃,现在可以直接使用 Dart 语言自带的 required 关键字。用于重写父类方法,标识子类对父类方法进行了重写。
2024-11-09 05:22:46
592
原创 Flutter 中 Provider 的使用指南
它使用 InheritedWidget 作为底层实现,通过提供一种订阅与更新的机制,能够让应用在状态变化时自动刷新对应的 UI,极大地提升了开发体验。在应用的根组件中使用 ChangeNotifierProvider,将 Counter 类实例注入到 Widget 树中,使整个应用都可以访问它的状态。在这个例子中,Consumer 会自动监听 Counter 对象的变化,并在 count 值更新时重建它内部的 UI。在使用 Provider 之前,我们需要定义一个简单的状态类。
2024-11-08 01:56:20
1984
原创 Swift中的Combine
Combine 是 Apple 在 iOS 13 中引入的响应式编程框架,它用于处理 Swift 中的异步操作和数据流。通过 Combine,开发者可以将异步操作(例如网络请求、用户输入、通知等)组合成数据流,并对其进行操作和观察。网上搜了下Combine的教程,发现要么是翻译的Apple的文档,要么SwiftUI+Combine直接绑定起来使用,这无疑给没有使用过SwiftUI的同学增加了学习的成本,今天决定写一下自己对Combine的理解希望能帮助到准备入门Combine的同学们。
2024-11-08 01:21:07
2374
原创 Flutter中有趣的级联语法
在 Flutter(Dart)中,级联操作符(cascade notation) 使用两个点 .. 表示,可以让你在对象上连续调用多个方法或设置多个属性,而不需要在每一步都重复对象的名字。这种语法在链式调用和构建复杂对象时非常有用。
2024-11-05 19:46:01
689
原创 Flutter中的Extension关键字
在 Dart 和 Flutter 中,extension 关键字允许开发者为现有的类添加新的功能,而无需修改原有类的代码。这种特性叫做扩展(extension),它使代码更加灵活且易于组织,有助于避免继承带来的复杂性。以下是关于 extension 的详细介绍。
2024-11-04 20:43:37
631
原创 深入了解 Flutter 中的泛型:让代码更灵活更安全的关键
泛型(Generics)是编程语言中一种关键机制,它允许我们在类、接口、方法等结构中使用类型参数,而不必指定具体的类型。在 Flutter 中,泛型可以帮助我们编写出更灵活的代码,同时提升类型安全性。Flutter 中广泛使用了泛型,使得框架中的许多工具和库具备更强的灵活性。比如,Flutter 中的 List 就是一个泛型类,我们可以指定列表存储的类型,让它们在编译时确定类型,避免运行时类型错误。这篇文章主要介绍Flutter中的泛型(Generics)。
2024-11-04 02:05:01
967
移动+Swift(MVVM)+Swift+MVVM的实例代码(使用KVO实现)
2025-01-23
Flutter+Flutter+Getx+GetX中路由管理用法,跟博客一起的Demo
2024-10-31
Flutter+Getx+状态管理、路由管理、getx用法+用于展示Getx用法
2024-10-28
Flutter+Getx+状态管理、路由管理、getx用法+用于展示Getx用法
2024-10-28
移动端+OC/Auto Layout+自动布局 UIStackView+iOS UIStackView
2024-08-14
Flutter+getx+dart+使用getx实现鉴权
2024-07-19
移动端国际化+flutter+Flutter getx+GetX实现国际化
2024-07-16
数据结构+顺序表的C语言实现
2024-04-24
Flutter+Flutter GetX状态管理+GetX状态管理+Getx状态管理
2024-03-16
flutter+getx+getx路由管理+getx用法
2024-03-16
iOS framework打包实例demos
2023-07-31
flutter路由跳转和传值方式demo
2022-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人