繁体   English   中英

简化switch语句(Objective-C)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM