Ala*_*lan 0 iphone cocoa objective-c
Objective-C有更好的方法吗:
if ([elementName isEqual:@"one"]){
// do some stuff
}
else if ([elementName isEqual:@"two"]]{
// do more stuff
}
else if ([elementName isEqual:@"three"]]{
// do more stuff
}
理想情况下,我想要像:
//BAD CODE, NOT REAL!!!
switchString(elementName){
@"one":
// do stuff
break;
@"two":
// do more stuff
break;
@"three":
// do more stuff
break;
}
更简洁一点
NSArray* array = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];
int index = [array indexOfObject:elementName];
switch (index) {
case 0:
break;
...
default:
// -1 would be not fount
}
Run Code Online (Sandbox Code Playgroud)
另外,更复杂的方法是将字符串存储NSInvocations在字典中,并使用元素名称作为键来调出调用.如果"做东西"部分更多的是范围内的几行,我会这样做