2012-03-23 2 views
1

Предполагается, что у меня есть класс под названием TrafficLight, и я хотел бы иметь свойство currentColor. Я знаю, что это возможно, чтобы создать перечисление для представления текущего цвета из фиксированного пула вариантов, например:Определение перегородки ivar в какао

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

Но как теперь превратить это в Ивар в классе какао? Если я делаю это свойством, какие атрибуты свойств обычно используются? Определяет ли определение перечисления внутри области реализации? Он входит в какой-либо конкретный метод? (например, init?)

ответ

5

Вы не можете переслать объявить перечисления, поэтому определение должно быть в файле интерфейса класса, а свойство объявлено как (неатомное, назначить) с типом вашего перечисления:

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

@interface ... 

@property (nonatomic, assign) PossibleColours currentColour; 

Таким образом, класс и потребители класса имеют доступ к определению.

Смежные вопросы