苹果开发编码规范
? 位置:属性的声明紧随成员变量块之后,中间空一行,无缩进。如上例所示?严把权限:对不需要外部修改的属性使用readonly
?NSString使用copy而非retain
?CFType使用@dynamic,禁止使用@synthesize
? 除非必须,使用nonatomic? Cocoa Pattern
? Delegate Pattern(委托)
? delegate对象使用assign,禁止使用retain。因为retain会导致循环索引导致内存泄露,
并且此类型的内存泄露无法被Instrument发现,极难调试
? 成员变量命名为_delegate,属性名为delegate
? Model/View/Controller?Model和View分离
? 不多解释
? Controller独立于View和Controller
? 不要在与view相关的类中添加过多的业务逻辑代码,这让代码的可重用性很差
? Controller负责业务逻辑代码,且Controller的代码与view尽量无关
? 使用@protocal定义回调APIs,如果并非所有方法都是必须的,使用@optional标示
?其他
? init方法和dealloc方法是是最常用的方法,所以将他们放在类实现的开始位置?使用空格将相同的变量、属性对齐,使用换行分组