美文网首页
编写高质量iOS与OS X代码的52个有效方法

编写高质量iOS与OS X代码的52个有效方法

作者: liyoucheng2014 | 来源:发表于2018-12-19 20:38 被阅读0次

    一、熟悉Objective-C

    1. Objective-C的起源
    2. 为了减少编译时间,.h文件尽量少引入其他头文件
    3. 多用字面量语法,少用等价方法
    4. 多用类型常量,少用#define预处理指令
    5. 多用枚举来表示状态、选项、状态码

    二、面向对象的角度分析如何提高OC的代码质量

    1. 理解“属性”这一概念
    2. 对象内部尽量直接访问实例变量
    3. 理解“对象等同性”
    4. 以类族模式隐藏实现细节
    5. 在既有类中使用关联对象存放自定义数据
    6. 理解objc_msgSend(对象的消息传递进制)
    7. 理解消息转发机制
    8. 用“方法调配技术”调试“黑盒方法“
    9. 理解”类对象“的用意

    三、介绍OC的接口和API设计来提高OC的代码质量

    1. 用前缀避免命名空间冲突
    2. 提供”全能初始化方法“
    3. 实现description方法
    4. 尽量使用不可变对象
    5. 使用清晰而协调的命名方式
    6. 为私有方法名加前缀
    7. 理解Objective-C错误模型
    8. 理解NSCopying协议

    四、协议与分类

    1. 通过委托与数据源协议进行对象间通信
    2. 把负责类的实现代码分散到便于管理的数个分类之中
    3. 总是为第三方分类的名称加前缀
    4. 勿在分类中声明属性
    5. 使用“class-continuation分类”隐藏实现细节
    6. 通过协议提供匿名对象

    五、内存管理机制

    1. 理解引用计数
    2. 以ARC简化引用计数
    3. dealloc方法中只释放引用并解除监听
    4. 编写“异常安全代码”时留意内存管理问题
    5. 以弱引用避免循环引用(避免内存泄漏)
    6. 以“自动释放池块”降低内存峰值
    7. 用“僵尸对象”调试内存管理问题
    8. 不要使用retainCount

    六、Block的原理及应用

    1. 理解“Block"的概念
    2. 为常用的block类型创建typedef
    3. 用handler块降低代码分散程度
    4. 用block块引用其所属对象时避免出现循环引用

    七、大中枢开发GCD

    1. 多用派发队列,少用同步锁
    2. 多用GCD,少用performSelector
    3. 掌握GCD及操作队列的使用时机
    4. 通过Dispatch Grout机制,根据系统资源状况来执行任务
    5. 使用dispatch_once来执行只需要运行一次的线程安全代码
    6. 不要使用dispatch_get_current_queue

    八、系统框架

    1. 熟悉系统框架
    2. 多用块枚举,少用for循环
    3. 对自定义其内存管理语义的collection使用无缝桥接
    4. 构建缓存时选用NSCache而非NSDictionary
    5. 精简load与initialize的实现代码
    6. 别忘了NSTimer会保留其目标对象

    参考

    建议先阅读书籍再看总结

    1. Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法_提取码:atsx
    2. MrLiuQ的简书
      iOS 编写高质量Objective-C代码(一)—— 简介
      iOS 编写高质量Objective-C代码(二)—— 面向对象
      iOS 编写高质量Objective-C代码(三)—— 接口和API设计
      iOS 编写高质量Objective-C代码(四)—— 协议与分类
      iOS 编写高质量Objective-C代码(五)—— 内存管理机制
      iOS 编写高质量Objective-C代码(六)—— block专栏
      iOS 编写高质量Objective-C代码(七)—— GCD专栏
      iOS 编写高质量Objective-C代码(八)—— 系统框架

    相关文章

      网友评论

          本文标题:编写高质量iOS与OS X代码的52个有效方法

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