最佳答案
我最近尝试编译一个较老的 Xcode 项目(以前编译得很好) ,现在我看到了这种形式的很多错误:
error: writable atomic property 'someProperty' cannot pair a synthesized setter/getter with a user defined setter/getter
导致这些错误的代码模式总是如下所示:
// Interface:
@property (retain) NSObject * someProperty;
// Implementation:
@synthesize someProperty; // to provide the getter
- (void)setSomeProperty:(NSObject *)newValue
{
//..
}
我可以理解为什么会产生这个错误。我告诉编译器合成我的属性访问器(getter 和 setter) ,然后立即手动覆盖 setter。这个代码总是有点不对劲。
那么,正确的做法是什么呢?如果我使用 @dynamic
而不是 @synthesize
,我也必须编写 getter 函数。这是唯一的办法吗?