这个问题有点困惑人,还以为@synthesize除了自动合成还有其他的用处,查了好久也没发现,这玩意就是用来自动合成的。问题的意思是编译器让我们不再用写synthesize后,有什么场景还会用到这个。
有以下几个情况
- 同时重写了setter和getter时重写了
- 只读属性的getter时
- 使用了@dynamic时
- 在 @protocol 中定义的所有属性
- 在 category 中定义的所有属性重载的属性
- 当你在子类中重载了父类中的属性
你必须 使用@synthesize来手动合成ivar。
像这样会报错。第一种情况,同事实现了getter和setter函数。
参考链接http://stackoverflow.com/questions/19784454/when-should-i-use-synthesize-explicitly