在Objective-C中有没有更好的方法可以做到:

如果([elementName isEqual:@“ one”]] {
   //做一些事情
}
否则,如果([elementName isEqual:@“ two”]] {
   //做更多的事情
}
否则(([elementName isEqual:@“ three”]] {
   //做更多的事情
}


理想情况下,我想要这样的东西:


//错误代码,不是真实的!!!

  switchString(elementName){
     @“一”:
        // 做东西
        打破;
     @“二”:
        //做更多的事情
        打破;
     @“三”:
        //做更多的事情
        打破;
    }

最佳答案

更加简洁

NSArray* array = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];

int index = [array indexOfObject:elementName];

switch (index) {
    case 0:
        break;
    ...
    default:
        // -1 would be not fount
}


另一种更复杂的方法是将字符串和NSInvocations存储在字典中,并使用元素名称作为键来提取调用。如果“执行任务”部分的作用范围超过几行,我会这样做

08-18 07:32