我已经定义了一个属性...
@property (nonatomic, strong) NSArray *eventTypes;
我想覆盖 getter 和 setter...
这是我写的...
- (void)setEventTypes:(NSArray *)eventTypes
{
_eventTypes = eventTypes;
//do some stuff here.
}
这很好用,但是当我添加这个时...
- (NSArray*)eventTypes
{
//do some stuff here.
return _eventTypes;
}
然后两个函数都显示错误并且不知道 _eventTypes 是什么。
这两种方式都是一样的。它适用于一个功能,但一旦我添加另一个功能,它就会同时失败。
我还需要为此做些什么吗?它与其中一个机器人一起工作,而不是同时与两者一起工作,这似乎很奇怪。
最佳答案
虽然 LLVM 会自动合成支持 ivar(默认情况下以下划线为前缀),但如果您同时实现 getter 和 setter 方法,您将不会获得自动合成的 ivar 和这就是为什么您必须手动 @synthesize eventTypes = _eventTypes;
的原因。
您可以在这里阅读更多相关信息:http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html
关于ios - 属性不适用于 getter 和 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13817562/