Objective-C中的枚举

时间:2010-01-04 20:49:27

标签: objective-c

我正在从Java跳到Objective-C。我想知道是否有一个类似于Java的枚举的概念,它支持方法的实现。我意识到Objective-C有简单的旧C枚举,但这些只是整数。

我希望防止切换码 - Java枚举将是完美的。

1 个答案:

答案 0 :(得分:6)

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中找到此示例。