Objective c 目标-C中频vs开关
我不明白为什么它与Objective c 目标-C中频vs开关,objective-c,if-statement,switch-statement,Objective C,If Statement,Switch Statement,我不明白为什么它与if语句一起工作,而不与开关一起工作: if ((int)typeOfHall == 1) {//LocalHall NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"]; NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standard
if
语句一起工作,而不与开关一起工作:
if ((int)typeOfHall == 1) {//LocalHall
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
}
下面的代码将不起作用(编译错误:预期表达式
(在NSFetchRequest上)):
我不知道为什么会这样。我想switch和if语句是相似的,但在本例中,它们似乎非常不同
你知道为什么会发生这种情况吗?如果你想在案例中声明任何变量,你需要一个单独的作用域:
switch ((int)typeOfHall) {
case 1:
{ /* Introduce a scope ... */
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
break;
} /* ... that ends here. */
default:
break;
}
旁注:如果LocalHall
是一个枚举值,则代码在没有强制转换的情况下可读性更强:
switch (typeOfHall) {
case LocalHall:
// ...
如果要在案例中声明任何变量,则需要在案例中使用单独的作用域:
switch ((int)typeOfHall) {
case 1:
{ /* Introduce a scope ... */
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
break;
} /* ... that ends here. */
default:
break;
}
旁注:如果LocalHall
是一个枚举值,则代码在没有强制转换的情况下可读性更强:
switch (typeOfHall) {
case LocalHall:
// ...
不起作用怎么办?这个案子被忽略了?它进入默认分支?我在NSFetchRequest语句中发生的行中输入了一个错误。不管怎么说,我编辑了这个问题,并把错误放在括号里。你说“我不知道为什么会这样。”为什么会这样?你说它“不起作用”,但不要告诉我们出了什么问题。它不能编译吗?它是否给出了错误的结果?如果您需要代码方面的帮助,您必须发布一个连贯的问题。正如您在上面所看到的(错误:预期表达式(在NSFetchRequest上)):。好的,这是一个编译错误,我将编辑我的问题。怎么不工作?这个案子被忽略了?它进入默认分支?我在NSFetchRequest语句中发生的行中输入了一个错误。不管怎么说,我编辑了这个问题,并把错误放在括号里。你说“我不知道为什么会这样。”为什么会这样?你说它“不起作用”,但不要告诉我们出了什么问题。它不能编译吗?它是否给出了错误的结果?如果您需要代码方面的帮助,您必须发布一个连贯的问题。正如您在上面所看到的(错误:预期表达式(在NSFetchRequest上)):。好的,这是一个编译错误,我将编辑我的问题。谢谢,我错过了花括号!Python习惯..谢谢我错过了花括号!巨蟒习性。。