小编Dam*_*Dam的帖子

在objective-c中使用字符串实现可读开关案例的最佳方法?

在其他动态语言中,如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)

xcode objective-c switch-statement

15
推荐指数
1
解决办法
3万
查看次数

标签 统计

objective-c ×1

switch-statement ×1

xcode ×1