在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
存储在字典中,并使用元素名称作为键来提取调用。如果“执行任务”部分的作用范围超过几行,我会这样做