【发布时间】:2017-01-03 09:39:20
【问题描述】:
我不明白为什么这适用于if 语句而不是switch:
if ((int)typeOfHall == 1) {//LocalHall
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
}
下面的代码不起作用(编译错误:Expected expression(在 NSFetchRequest 上)):
switch ((int)typeOfHall) {
case 1:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Game"]; //Error Expected expression
NSPredicate *p = [NSPredicate predicateWithFormat:@"player_id == %@ ",[[NSUserDefaults standardUserDefaults] valueForKey:@"LoggedUserId"]];
request.predicate = p;
break;
default:
break;
}
我不知道为什么会这样。我认为 switch 和 if 语句是相似的,但在这种情况下,它似乎非常不同。
你知道为什么会发生这种情况吗?
【问题讨论】:
-
不起作用怎么办?案件被忽略?它进入默认分支?
-
我在 NSFetchRequest 语句中发生的行上放了一个错误。无论如何,我编辑了问题并将引发的错误放在括号内
-
你说“我不知道为什么会这样。”为什么会发生什么?您说它“不起作用”,但不要告诉我们出了什么问题。编译失败了吗?它会给出错误的结果吗?如果您需要代码方面的帮助,您必须发布一个连贯的问题。
-
如您在上面看到的(错误:预期表达式(在 NSFetchRequest 上)):。好的,这是一个编译错误,我将编辑我的问题。
标签: objective-c if-statement switch-statement