zoukankan      html  css  js  c++  java
  • 《Effective Object-C 2.0 编写高质量IOS与OS X代码的52个有效方法》

    《Effective Object-C 2.0 编写高质量IOS与OS X代码的52个有效方法》


    1 、在类的头文件中尽量少引入其他头文件

    • 使用@class代替import,还可以解决相互引用的问题。
    • 协议和代理可以放在小的头文件中,但不要放在大的头文件中减少耦合。

    2、用类型常量代替预编译指令

    • 局部变量在实现文件中定义:static const NSTimerInterval kAnimationDuration = 0.3;
    • 全局变量(或者是只会在当前类中使用,但是又不想全局有相同的变量,类似通知名称变量):
      • 在头文件中: extern NSString *const EOCStringConstant;
      • 在实现文件中: NSString *const EOCStringContant = @"VALUES";

    3、使用枚举来表示状态码

    • 处理枚举的switch语句最好不要带有default语句。

    4、为属性添加特质(修饰词)

    5、在对象内部直接访问变量(用 _变量 ),而在对象内部设置属性时,采用属性来访问

    • 直接访问变量比使用属性快,而设置变量时用属性方便调试

    6、使用工厂方法创建类组

    7、写可重用代码时,为其加上前缀

    8、全能初始化方法

    • 如果一个类有多个初始化方法,则为他们写一个全能初始化方法,每个初始化方法都会调用全能初始化方法。
    • 优势是当底层数据变化时,只需要修改全能初始化方法,其他的初始化方法就不需要改动。

    9、实现description方法

    • 方便调试
    • 在debugger模式中也需要实现debugDespriction方法

    10、命名方式

    • 驼峰法:变量和方法都是以小写字母开头,之后单词首字母大写(类的首字母大写)
    • 具体方法的命名可以参考NSString

    11、为私有方法添加前缀

    • 不要使用前缀 _ (这是苹果预留的前缀)

    12、错误处理

    • 程序只处理致命错误(使程序退出的错误)
    • 自己处理时使用nil,或者自己把错误的详细信息放在NSError中

    13、类别的使用

    • 使用类别将类模块化,将其实现分到各个类别中
    • 为第三方类添加类别时,加上自己的特有前缀
    • 分类中不要定义属性

    14、使用弱引用避免保留环

    15、使用dispatch_group来使任务分组

    • 使用dispatch_group_notify 或者 dispatch_group_wait 在group任务执行完执行下一步任务

    16、遍历

    • 使用NSENumerator遍历
    • 使用for in 快速遍历
    • 基于块的遍历 例如:enumerateObjectsUsingBlock

    17、熟悉系统框架 包括但不限于:

    • CFNetwork
    • CoreAudio
    • AVFoundation
    • CoreData
    • CoreText

    18、构建缓存时选用NSCache 而不是NSDictionary

    19、NSTimer会保留目标对象

    • 容易形成保留环,造成内存泄露
    • 当NStimer失效时会释放目标对象
    • 可以为NSTimer添加方法,用块来打破保留环

    待深究:

    第11条:理解objc_msgSend的作用

    第12条:理解消息转化机制

    第13条:用“方法调配技术”调试“黑盒方法”

    第14条:理解“类对象”的用意

    第29条:理解引用计数

    第37条:理解“块”的概念

  • 相关阅读:
    增强for循环赋值并且向list集合里添加元素,每个元素都一样
    《《《Spring 视频学习笔记
    xml中的<where><if>模糊查询
    《《《layui入门笔记
    《《《Vue element学习笔记
    《《《Spring Boot视频学习笔记
    intellij idea设置打开多个文件显示在多行tab上
    postMan安装完成,打开提示找不到,或者报错 可能原因
    Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录
    idea代码注释
  • 原文地址:https://www.cnblogs.com/sunyanyan/p/5109131.html
Copyright © 2011-2022 走看看