2010-01-04 105 views
3

我正在从Java跳转到Objective-C。我想知道是否有类似于Java的枚举的概念,支持方法的实现。我意识到Objective-C具有普通的旧C枚举,但那些实际上只是整数。Objective-C枚举

我正在寻求防止开关码--Java枚举是完美的。

回答

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找到。