没有用于赋值给属性的setter方法

时间:2014-02-01 16:10:57

标签: ios objective-c enums setter nsobject

我将常量和自定义枚举放在一个单独的.h文件中。该文件是NSObject的子类。

typedef NS_ENUM(NSInteger, MyEnumName) {
    EnumValueOne,
    EnumValueTwo
};

在另一个也是NSObject的子类的类中,我有一个枚举的属性。

@property (assign, nonatomic) MyEnumName hello;

在其实现文件中,我试图设置它的值,

self.hello = EnumValueTwo;

但我在那条线上收到错误说,

没有setter方法'setHello:'用于分配属性

我尝试手动为该属性声明一个setter方法,但它仍然无效。

如果我在视图控制器中执行相同的操作,它可以正常工作。不能在NSObject子类中执行此操作。

有人可以告诉我为什么会这样以及如何纠正它?

谢谢。

1 个答案:

答案 0 :(得分:1)

在示例项目中,您尝试在类方法中调用self ..这是问题而不是枚举。您无法从类方法访问self或任何实例变量。