在其他动态语言中,如ruby,javascript等,你可以这样做:
switch(someString) {
case "foo":
//do something;
break;
case "bar":
// do something else;
break;
default:
// do something by default;
}
Run Code Online (Sandbox Code Playgroud)
在objective-c中,因为它是从c语言非常粗略地派生出来的,所以你不能这样做.我最好的做法是:
#import "CaseDemo.h"
#define foo 1
#define bar 2
static NSMutableDictionary * cases;
@implementation CaseDemo
- (id)init
{
self = [super init];
if (self != nil) {
if (cases == nil) {
// this dict can be defined as a class variable
cases = [[NSMutableDictionary alloc] initWithCapacity:2];
[cases setObject:[NSNumber numberWithInt:foo] forKey:@"foo"];
[cases setObject:[NSNumber numberWithInt:bar] forKey:@"bar"];
}
}
return …Run Code Online (Sandbox Code Playgroud)