在可可中定义enum ivar

时间:2012-03-23 08:18:30

标签: objective-c cocoa-touch cocoa enums

假设我有一个名为TrafficLight的课程,我希望有一个属性currentColor。我知道可以创建一个枚举来表示固定选择池中的当前颜色,如下所示:

enum currentColor { CurrentlyRed = 0, CurrentlyYellow = 1, CurrentlyGreen = 2 };

但是现在如何将它变成Cocoa类中的ivar?如果我将它作为属性,通常使用的属性属性是什么?枚举定义是否属于实现范围?它是否属于任何特定方法? (比如init?)

1 个答案:

答案 0 :(得分:5)

你不能转发声明枚举,所以定义应该在类的接口文件中,并且属性声明为(nonatomic,assign)和你的枚举类型:

typedef enum { 
    CurrentlyRed = 0, 
    CurrentlyYellow = 1, 
    CurrentlyGreen = 2 
} PossibleColours;

@interface ...

@property (nonatomic, assign) PossibleColours currentColour;

这样,类的类和消费者可以访问定义。