在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; }
答案 0 :(得分:7)
更简洁一点
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
存储在字典中,并使用元素名称作为键来调出调用。我会这样做,如果“做东西”部分更多是范围内的几行
答案 1 :(得分:1)
除非我使用:
,否则你没有正确地做到这一点[elementName isEqualToString:@"one"]