В Цели 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...
, чтобы их было проще искать во всплывающем окне автозаполнения.