iOS中有一个有趣的开关错误。
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; }
在iOS中出现了有趣的开关错误(Funny switch error in iOS),这个问题的出现是由于在case块内声明变量时,应该用大括号声明该块。解决方法是将代码改为以下形式:
int typeNumber = 4; switch (typeNumber) { case typeNumberEvent: { NSString *myString; break; } case typeNumberAd: { NSURL *myURL; break; } default: { NSNumber *myNumber; break; } }
这个问题的解答也很简洁,可以参考这个链接:Can I declare variables inside an Objective-C switch statement?