属性要尽可能描述性地命名,并且使用驼峰命名。
关于”*”的位置:
复制代码// 推荐
NSString *text;
// 不推荐
NSString* text;
NSString * text;
注意,这个习惯和常量并不同。
static NSString * const ...
你永远不能在 init (以及其他初始化函数)里面用 getter 和 setter 方法,你应该直接访问实例变量。记住一个对象是仅仅在 init 返回的时候,才会被认为是初始化完成到一个状态了。
当使用 setter/getter 方法的时候尽量使用点符号。
复制代码// 推荐
view.backgroundColor = [UIColor orangeColor];
[UIApplication sharedApplication].delegate;
// 不推荐
[view setBackgroundColor:[UIColor orangeColor]];
UIApplication.sharedApplication.delegate;
使用点符号会让表达更加清晰并且帮助区分属性访问和方法调用。
属性定义
复制代码@property (nonatomic, readwrite, copy) NSString *name;
属性的参数应该按照这个顺序排列: 原子性,读写和内存管理。
习惯上修改某个属性的修饰符时,一般从属性名从右向左搜索需要修动的修饰符。最可能从最右边开始修改这些属性的修饰符,根据经验这些修饰符被修改的可能性从高到底应为:内存管理 > 读写权限 >原子操作
你必须使用 nonatomic,除非特别需要的情况。在iOS中,atomic带来的锁特别影响性能。










