Перечисления в Objective-C - PullRequest
       13

Перечисления в Objective-C

3 голосов
/ 04 января 2010

Я делаю переход с Java на Objective-C. Мне интересно, существует ли концепция, аналогичная перечислениям Java, которая поддерживает реализации методов. Я понимаю, что Objective-C имеет простые старые перечисления C, но на самом деле это просто целые числа.

Я пытаюсь предотвратить переходы - перечисления Java были бы идеальными.

1 Ответ

6 голосов
/ 04 января 2010

Objective-C - это просто C с некоторой дополнительной разметкой для объектов, новые типы не были добавлены.

Это значит, нет.

Для взаимоисключающих флагов Apple использует строки.

header.h

extern NSString * const kNSSomeFlag;
extern NSString * const kNSOtherFlag;
extern NSString * const kNSThirdFlag ;

code.m

NSString * const kNSSomeFlag = @"kNSSomeFlag";
NSString * const kNSOtherFlag = @"kNSOtherFlag";
NSString * const kNSThirdFlag = @"kNSThirdFlag";

…

void myFunction(NSString *flag)
{
    if (flag == kNSSomeFlag) {
        // the code
    }
}

Пример этого можно найти в NSDistributedNotificationCenter.

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