假设我有一个名为TrafficLight
的课程,我希望有一个属性currentColor
。我知道可以创建一个枚举来表示固定选择池中的当前颜色,如下所示:
enum currentColor { CurrentlyRed = 0, CurrentlyYellow = 1, CurrentlyGreen = 2 };
但是现在如何将它变成Cocoa类中的ivar?如果我将它作为属性,通常使用的属性属性是什么?枚举定义是否属于实现范围?它是否属于任何特定方法? (比如init?)
答案 0 :(得分:5)
你不能转发声明枚举,所以定义应该在类的接口文件中,并且属性声明为(nonatomic,assign)和你的枚举类型:
typedef enum {
CurrentlyRed = 0,
CurrentlyYellow = 1,
CurrentlyGreen = 2
} PossibleColours;
@interface ...
@property (nonatomic, assign) PossibleColours currentColour;
这样,类的类和消费者可以访问定义。