Как ограничить видимость значений enum в Objective C? - PullRequest
0 голосов
/ 12 сентября 2011

В Цели C, когда вы определяете перечисление, все значения перечисления видны везде и засоряют глобальное пространство имен.

Я хотел бы сделать это в стиле Java и обеспечить, чтобы перечисления были доступны только через имя типа перечисления, например, с

typedef enum
{
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, NUM_OF
} Day;

Я хочу убедиться, что простой вызов MONDAY вызывает ошибку компиляции или, по крайней мере, предупреждение, и единственный способ получить доступ к значению перечисления был что-то вроде Day.MONDAY или Day::MONDAY или [Day MONDAY] или ...

В Java я использую Enums или Interfaces, но возможно ли это в Objective-C?

Если нет, то я бы назвал все перечисления следующим образом: DAY_MONDAY, DAY_TUESDAY..., чтобы их было проще искать во всплывающем окне автозаполнения.

1 Ответ

1 голос
/ 12 сентября 2011

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

Таким образом, константы будут доступны только по вашему запросу (т.е. Day.MONDAY или [Day MONDAY]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...