2010-01-04 213 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找到。