美文网首页
Effective Objective-C 2.0笔记(七)Fo

Effective Objective-C 2.0笔记(七)Fo

作者: 孔朝阳 | 来源:发表于2019-02-06 17:18 被阅读0次

    四十七、熟悉系统框架

    1、ARC只负责Objective-C对象,所以使用CoreFoundation等C语言框架,需要注意内存管理问题。

    四十八、多用块枚举,少用for循环

    1、遍历有for循环、NSENumerator遍历、快速遍历和块枚举,块枚举可通过GCD并发执行遍历操作

    四十九、对自定义其内存管理语义的collection使用无缝桥接

    1、通过无缝桥接技术,可以在Foundation框架中的Objective-C对象与CoreFoundation框架中的C语言数据结构之间来回转换

    五十、构建缓存时选用NSCache而非NSDictionary

    1、当系统资源将要耗尽时,NSCache可以自动删减缓存,而且还会先行删除最久未使用的对象

    2、NSCache不会拷贝而是保留Key,所以在Key不支持copy的情况下,使用较Dictionary方便

    3、NSCache是线程安全的

    4、可以给NSCache对象设置上限(不严格执行),用以限制缓存中的对象总个数及总成本

    5、将NSPurgeableData与NSCache搭配使用,可实现自动清除数据的功能

    五十一、精简initillize与load的实现代码

    1、在加载阶段,类和分类会调用load方法且仅调用一次,类的load方法要比分类中的load方法先调用

    2、load方法不参与覆写机制

    3、在执行子类的load方法之前,必定会先执行所有超类的load方法

    4、在load方法中使用其他类是不安全的

    5、应用程序必须阻塞并等待所有类的load方法都执行完毕才能继续

    6、initialize方法会在程序首次访问该类之前调用且仅调用一次

    7、initialize方法参与覆写机制

    8、initialize方法只应该用来设置内部数据

    五十二、NSTimer会保留其目标对象

    1、计时器放在运行循环里,才能正常触发任务

    2、计时器会保留其目标对象,等到自身失效时再释放此对象。调用invalidate方法可以令计时器失效,原因如下图说明:

    相关文章

      网友评论

          本文标题:Effective Objective-C 2.0笔记(七)Fo

          本文链接:https://www.haomeiwen.com/subject/ueznjqtx.html