Objective-C中的枚举

Ken*_*Ken 3 objective-c

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

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

Geo*_*lly 6

Objective-C只是C,带有一些额外的对象标记,没有添加任何新类型.

那意味着,没有.

对于互斥标志,Apple使用字符串.

header.h

extern NSString * const kNSSomeFlag;
extern NSString * const kNSOtherFlag;
extern NSString * const kNSThirdFlag ;
Run Code Online (Sandbox Code Playgroud)

code.m

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

…

void myFunction(NSString *flag)
{
    if (flag == kNSSomeFlag) {
        // the code
    }
}
Run Code Online (Sandbox Code Playgroud)

这方面的一个例子可以在NSDistributedNotificationCenter.