【发布时间】:2014-02-01 16:10:56
【问题描述】:
我的常量和自定义枚举在一个单独的 .h 文件中。该文件是NSObject 的子类。
typedef NS_ENUM(NSInteger, MyEnumName) {
EnumValueOne,
EnumValueTwo
};
在另一个也是NSObject 的子类的类中,我有一个用于所述枚举的属性。
@property (assign, nonatomic) MyEnumName hello;
在它的实现文件中,我试图像这样设置它的值,
self.hello = EnumValueTwo;
但我在该行收到错误提示,
没有 setter 方法 'setHello:' 用于赋值给属性
我尝试为该属性手动声明一个 setter 方法,但它仍然不起作用。
如果我在视图控制器中做同样的事情,它工作正常。在 NSObject 子类中不能这样做。
谁能告诉我这是为什么以及如何纠正它?
谢谢。
【问题讨论】:
-
请显示您所说的整个上下文
self.hello -
实际上仅此而已。我只是想在方法中将值设置为该属性。整个方法体只有这行代码。
-
你@synthesize 打招呼了吗?旧版本的编译器需要这个
-
不,这是针对使用 Xcode 5 的 iOS 7 的。我合成了它,但问题仍然存在。
-
好吧,我很抱歉,如果它在一个文件中有效,而在另一个文件中无效,那么它们之间存在一些至关重要的区别。我无法在这里重现该问题 - 它对我有用,就像它在您的视图控制器类中一样。如果您不愿意显示更多上下文,我无法帮助您。
标签: ios objective-c enums setter nsobject