iOS中有趣的开关错误

Nie*_*gen 3 iphone switch-statement ios

你能试试这两个代码吗?第一个引发错误,而不是第二个错误.我想知道是不是因为我的XCode版本,如果没有,为什么会发生这种情况.

        int typeNumber = 4;
        switch (typeNumber) {
            case typeNumberEvent:
                NSString myString;
                break;
            case typeNumberAd:
                NSURL myURL;
                break;
            default:
                NSNumber myNumber;
                break;
        }

        int typeNumber = 4;
        switch (typeNumber) {
            case typeNumberEvent:
                NSLog(@"hello");
                NSString myString;
                break;
            case typeNumberAd:
                NSLog(@"hello");
                NSURL myURL;
                break;
            default:
                NSLog(@"hello");
                NSNumber myNumber;
                break;
        }
Run Code Online (Sandbox Code Playgroud)

Emp*_*ack 5

如果您尝试在第一行创建变量,编译器将抛出错误case.

只需用大括号括起案件块即可.一切都会好的.

case typeNumberEvent: {
        NSString myString;
        break;
}
Run Code Online (Sandbox Code Playgroud)