自动 synthesize 实例变量

Tip

只运行在 iOS 下的代码,优先考虑使用自动 synthesize 实例变量。

synthesize 实例变量时,使用 @synthesize var = var_; 防止原本想调用 self.var = blah; 却不慎写成了 var = blah;

不要synthesize CFType的属性 CFType应该永远使用@dynamic实现指示符。 尽管CFType不能使用retain属性特性,开发者必须自己处理retain和release。很少有情况你需要仅仅对它进行赋值,因此最好显示地实现getter和setter,并作出注释说明。 列出所有的实现指示符 尽管@dynamic是默认的,显示列出它以及其它的实现指示符会提高可读性,代码阅读者可以一眼就知道类的每个属性是如何实现的。

  1. // Header file
  2. @interface Foo : NSObject
  3. // A guy walks into a bar.
  4. @property(nonatomic, copy) NSString *bar;
  5. @end
  6.  
  7. // Implementation file
  8. @interface Foo ()
  9. @property(nonatomic, retain) NSArray *baz;
  10. @end
  11.  
  12. @implementation Foo
  13. @synthesize bar = bar_;
  14. @synthesize baz = baz_;
  15. @end

原文: https://zh-google-styleguide.readthedocs.io/en/latest/google-objc-styleguide/features/