Пользовательские константы класса - PullRequest
1 голос
/ 23 декабря 2010

Я создал собственный класс для своего проекта iPhone. Одним из свойств этого класса является int, и я хочу иметь возможность назначать только несколько значений этому свойству. Мне нравится способ, которым Cocoa делает это со многими собственными классами, например, пример с лисой, установка стиля выбора ячеек в UITableView. Я хотел бы реализовать это в моем собственном классе.

Я открыл заголовки для некоторых классов Какао и обнаружил там множество перечислений typedef, но, будучи новичком в target-c, я не мог понять, как заставить их работать так, как я хотел (или даже где их поставить).

typedef enum {
    UITableViewCellSelectionStyleNone,
    UITableViewCellSelectionStyleBlue,
    UITableViewCellSelectionStyleGray
} UITableViewCellSelectionStyle;

Итак, подведем итоги ... как в Какао, вы бы сделали:

cell.accessoryType = UITableViewCellAccessoryNone;

Я бы хотел сделать то же самое с моими собственными классами:

myObject.myProperty = MyObjectMyPropertySomeValue;

Любая помощь очень ценится.

1 Ответ

3 голосов
/ 23 декабря 2010

Объявите перечисление, содержащее все различные опции, и назовите его:

typedef enum {
    MyObjectMyPropertySomeValue,
    MyObjectMyPropertySomeOtherValue,
    MyObjectMyPropertySomeThirdValue
} MyObjectMyPropertyValues;

Тогда, в вашем коде,

@property (nonatomic, assign, readwrite) MyObjectMyPropertyValues myProperty;

Я предполагаю, что вы можете выяснить все остальное - это довольно стандартно.

Набрано в баузере без проверки.

...