可能是重复问题:
在switch语句中声明变量
我在使用Objective-C编写特定的switch语句时遇到了困难。我熟悉语法,可以将其重写为if/else块,但我很好奇。
switch (textField.tag) {
case kComment:
ingredient.comment = textField.text;
break;
case kQuantity:
NSLog(@""); // removing this line causes a compiler error
NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
fmt.generatesDecimalNumbers = true;
NSNumber *quantity = [fmt numberFromString:textField.text];
[fmt release];
ingredient.quantity = quantity;
break;
}
我看不到语法错误,就好像我需要欺骗编译器允许这样做。