ios - 属性不适用于 getter 和 setter

标签 ios properties

我已经定义了一个属性...

@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/

相关文章:

python - property() 返回不同的值

ios - 当我在appdelegate中定义了一个属性时,如何使用它?

c# - 为什么要在属性访问器中使用私有(private)变量?

ios - 如何使用 Alamofire 快速调用 web 服务?

ios - 当它有一些约束时更改 uiview 框架

ios - 设置添加为 subview Controller 的导航 Controller 的框架

Objective-C 属性 Getter/Setter 崩溃 EXC_BAD_ACCESS

ios - iPhone 4 英寸和 4.7 英寸屏幕的图像缩放

ios - cocoa touch 框架 Assets 在应用程序项目中不可见

ios - 属性(property)申报疯狂 iOS 7