swift
文章平均质量分 66
AIGCer
坚持有输出的深度学习
独立开发之路学习记录
展开
-
SwiftDate类型处理与优化
在处理日期和时间时,我们应注意性能问题,尤其是在需要进行频繁的日期格式转换时。虽然提供了一种方便的方式来处理日期和时间,但是其实例化过程可能会成为性能瓶颈。我们可以通过重用实例以及使用来提高性能。最后,值得注意的是,我们应该根据具体的应用场景来选择日期格式,并进行适当的性能测试,以确保所做的优化确实改善了我们的代码的性能。希望本文能对你在Swift中处理日期和时间时有所帮助。如果你有任何问题或者建议,欢迎在评论中提出。原创 2023-05-20 19:13:36 · 965 阅读 · 0 评论 -
Swift GCD(Grand Central Dispatch)探索
在串行队列中,任务必须一个接一个地执行,因此这种队列适用于需要顺序执行任务的场景,比如在某个任务完成后执行另一个任务。并发队列可以同时执行多个任务,但是任务的执行顺序并不一定按照添加到队列中的顺序,而是取决于系统资源的可用性和任务的优先级。同步执行是在当前线程中执行任务,异步执行是在后台线程中执行任务,而栅栏执行可以在任务执行前和执行后插入其他任务。中执行的任务都将在主线程上执行,如果在主线程中执行较耗时的任务,可能会导致 UI 卡顿,因此需要将这些任务放在后台线程中执行。原创 2023-02-28 22:59:31 · 646 阅读 · 0 评论 -
iOS 奔溃EXC_BAD_ACCESS(KERN_INVALID_ADDRESS)分析
EXC_BAD_ACCESS (KERN_INVALID_ADDRESS)是一种常见的iOS应用程序崩溃错误原创 2023-02-13 18:51:00 · 6893 阅读 · 0 评论 -
Swift高效开发Tips
利用可选链式调用解决可选值问题,避免使用 if let 或者 guard let。利用泛型代码复用和简化代码。运用高阶函数,例如 map、filter 和 reduce 等,以简化数据处理。使用结构体代替类,当数据结构不需要继承或者是多态时,结构体会更加高效。使用 Enum 枚举类型来表示状态或者选项。利用协议来设计抽象层,将代码组织得更加清晰。利用 Xcode 的自动代码完成和快捷键加速开发效率。使用 Playground 进行快速原型开发和代码片段测试。使用 Source Contro原创 2023-02-12 15:58:45 · 3062 阅读 · 0 评论 -
iOS中如何高效使用Core Data
高效使用Core Data技巧:正确地设计模型:确保模型是合理的,符合领域的要求,以及避免冗余的数据。合理的使用NSFetchedResultsController:NSFetchedResultsController可以帮助你高效地管理数据,减少内存使用,以及提高效率。正确地使用预取请求:使用预取请求可以避免在大量数据请求中的频繁的磁盘访问,提高效率。避免频繁的保存:在需要的时候一次性保存所有的更改,而不是频繁的保存,避免对性能的影响。使用高效的数据类型:选择合适的数据类型,原创 2023-02-12 09:35:09 · 571 阅读 · 0 评论 -
Swift如何保证线程安全
Swift可以通过以下几种方式来保证线程安全使用互斥锁(Mutex):使用互斥锁可以防止多个线程同时访问共享数据,保证线程安全。使用OSAtomic操作:OSAtomic操作可以在多线程环境中安全地执行原子操作。使用DispatchQueue:DispatchQueue可以使用GCD技术实现线程安全。您可以使用DispatchQueue.sync和DispatchQueue.async方法在指定队列中执行任务,以保证线程安全。使用NSLock和NSCondition:NSLock和N原创 2023-02-12 09:21:32 · 1450 阅读 · 0 评论 -
Swift如何使用依赖注入进行解藕
Swift 中可以使用依赖注入(Dependency Injection)来解耦组件之间的依赖关系。依赖注入是一种设计模式,指的是在运行时,将一个组件所依赖的其他组件通过构造函数或者属性注入的方式传递给该组件。例如,有两个组件 A 和 B,A 依赖于 B。可以在 A 的构造函数中添加一个 B 的实例,并将该实例传递给 A,那么 A 就不再依赖于 B 的具体实现,而是依赖于 B 的接口。protocol BProtocol { func doSomething()}class B: BPro原创 2023-02-11 15:31:57 · 861 阅读 · 0 评论 -
Swfit Copy On Write 原理解析
Swift 中的 Copy On Write (COW) 技术是一种内存优化技术,其原理是在需要修改数据时才进行拷贝,以避免不必要的内存消耗。COW 的实现主要依赖于 Swift 中的结构体和类的特性。对于结构体而言,它是值类型,每次赋值都会使用新的内存地址;而类则是引用类型,每次赋值只是改变了指向内存地址的指针。原创 2023-02-09 20:35:55 · 795 阅读 · 0 评论 -
Swfit获取系统开机时间BootTime
Swift 获取系统开机时间原创 2022-09-03 11:07:27 · 604 阅读 · 0 评论 -
iPhone XR/XS/XS Max 适配,最全iPhone尺寸
iPhone 比较 https://www.apple.com/iphone/compare/原创 2018-09-18 18:40:24 · 30653 阅读 · 0 评论 -
iOS审核被拒:PLA 2.3 Please remove all references to pre-release versions of Apple software and hardware
2018年10月18日 上午7:39发件人 Apple0. 10.0 Before You Submit: Program License AgreementPLA 2.3Your app or its metadata contains references to a pre-release version of Apple software or hardware. Apps with...原创 2018-10-18 11:19:53 · 536 阅读 · 0 评论 -
CGAffineTransform 进行仿射变换
CGAffineTransform已知某个形状的点集合,需要在某个坐标系下面(view、layer)绘图,绘图之后需要对这个形状进行缩放(放大、缩小)、平移、旋转操作,这时就需要用到CGAffineTransform来进行仿射变换。CGAffineTransform 原理根据学过的矩阵变换知识,对于三维坐标系下的一个坐标点(x,y,z),可以使用一个三维矩阵来进行变化来任意操作(x,y,z)。 类原创 2017-12-07 13:09:24 · 1684 阅读 · 0 评论 -
【Swift】结构体和类
Swift中结构体和类有很多共同点 - 定义属性用于存储值 - 定义方法用于提供功能 - 定义下标操作使得可以通过下标语法来访问实例所包含的值 - 定义构造器用于生成初始化值 - 通过扩展以增加默认实现的功能 - 实现协议以提供某种标准功能与结构体相比,类还有如下的附加功能:- 继承允许一个类继承另一个类的特征- 类型转换允许在运行时检查和解释一个类实例的类型- 析构器允许一个类实例释原创 2017-12-04 19:00:14 · 297 阅读 · 0 评论