[英]Simplifying switch statement (Objective-C)
我正在尝试简化一个切换语句,该语句需要大量的空间和时间来编写。 通过代码,您会明白的。 如果没有,我将在后面解释。
// When row is selected
- (void)pickerView:(UIPickerView *)pickerTimer didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
switch (row) {
case 0:
NSLog(@"It obviously worked.0");
break;
case 1:
NSLog(@"It obviously worked.1");
break;
case 2:
NSLog(@"It obviously worked.2");
break;
case 3:
NSLog(@"It obviously worked.3");
break;
case 4:
NSLog(@"It obviously worked.4");
break;
case 5:
NSLog(@"It obviously worked.5");
break;
case 6:
NSLog(@"It obviously worked.6");
break;
default:
NSLog(@"It did kindof work.NIL");
break;
}
}
有什么办法可以简化吗? 只是喜欢
NSLog(@"It did work! %@", row);
为了记录,我尝试了一下,但是没有用。
整数的格式说明符为%d
- %@
指定一个对象。 为了安全起见,还应将NSInteger传递给int
,然后再将其传递给printf()
(这样就可以写@"%d", (int)row
),因为不能保证NSInteger的大小为该大小。 %d
说明符告诉printf()
期望。
顺便说一句,您不需要为每个case语句重复它。 不间断,控制权将落到下一种情况。
就像查克所说的,你可以做...
NSLog(@"It did work! %d", row);
...或者您可以将其变成一个对象...
NSLog(@"It did work! %@", [NSNumber numberWithInt:row]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.