【问题标题】:Defining an enum ivar in cocoa在可可中定义枚举 ivar
【发布时间】:2012-03-23 08:18:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: objective-c cocoa-touch cocoa enums


    【解决方案1】:

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

    typedef enum { 
        CurrentlyRed = 0, 
        CurrentlyYellow = 1, 
        CurrentlyGreen = 2 
    } PossibleColours;
    
    @interface ...
    
    @property (nonatomic, assign) PossibleColours currentColour;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多