iOS 编写高质量Objective-C代码

2018/11/14 posted in  iOS

https://www.jianshu.com/p/76ac67f1bd95

为了减少编译时间,.h文件中尽量少引入其他头文件。

多用字面量语法,少用等价方法

好处:简明易读,提高代码的可读性和可维护性
局限性:用字面量预防创建数组或字典时,值不能有nil,否则会抛出异常。

多用类型常量,少用#define预处理指令

#define ANIMATION_DURATION 0.5

// 替换成
static const NSTimeInterval kAnimationDuration = 0.5;

// 全局常量
// QiShare.h
extern const NSTimeInterval QiShareAnimationDuration;

// QiShare.m
const NSTimeInterval QiShareAnimationDuration = 0.3;

作者:QiShare
链接:https://www.jianshu.com/p/76ac67f1bd95
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

多用枚举表示状态、选项、状态码

理解“ 属性 ”这一概念

在iOS开发中,99.99..%的属性都会声明为nonatomic。
一是atomic会严重影响性能,
二是atomic只能保证读/写操作的过程是可靠的,并不能保证线程安全。

在对象内部尽量直接访问实例变量

以 “自动释放池块” 降低内存峰值

默认情况下:自动释放池需要等待线程执行下一次事件循环时才清空,通常for循环会不断创建新对象加入自动释放池里,循环结束才释放。因此,可能会占用大量内存。
手动加入自动释放池块(@autoreleasepool):每次for循环都会直接释放内存,从而降低了内存的峰值。

多用派发队列,少用同步锁

多用GCD,少用performSelector系列方法