07 2022 档案
摘要:前言: 从64位开始,iOS引入了Tagged Pointer技术,用于优化NSNumber、NSDate、NSString等小对象的存储。 Tagged Pointer主要为了解决两个问题: 内存资源浪费,堆区需要额外的开辟空间 访问效率,每次set/get都需要访问堆区,浪费时间, 而且需要
阅读全文
摘要:数据存储策略 在 iOS 应用程序中,从 “数据缓冲在哪里” 这个纬度看,缓冲一般分两种类型。 内存缓冲 磁盘缓冲 内存缓冲是将数据缓冲在内存中,供应用程序直接读取和使用。优点是读取速度快。缺点是由于内存资源有限,应用程序在系统中申请的内存,会随着应用生命周期结束而被释放,会导致内存中的数据
阅读全文
摘要:前言:CADisplayLink、NSTimer 不准时 CADisplayLink、NSTimer是基于RunLoop机制的,如果RunLoop的任务过于繁重,有可能会导致前两个定时器不准时。 举个例子: 加入我们创建了一个NSTimer定时器,每1秒钟做任务。那么,什么时候执行NSTim
阅读全文
摘要:前言:CADisplayLink、NSTimer 循环引用问题 CADisplayLink、NSTimer会对Target产生强引用,如果target又对他们产生强引用,那么就会引发循环引用。 @interface ViewController () @property (nonatomic,
阅读全文
摘要:一、简介 在 iOS 应用开发中,自定义一个类一般需要继承自 NSObject 类或者 NSObject 子类,但是,NSProxy 类不是继承自 NSObject 类或者 NSObject 子类,而是一个实现了 NSObject 协议的抽象基类。 /* NSProxy.h Copyright
阅读全文