这段代码似乎完全符合逻辑。为什么我得到“Switch condition has boolean value”错误?我用它来切换UIButton
上的文字。它有效,但我仍然有错误。
bool buttonSunStatus = TRUE;
- (void) useButtonSun:(id)sender
{
buttonSun = [UIButton buttonWithType: UIButtonTypeCustom];
switch (buttonSunStatus) {
case TRUE:
[sender setTitle:@"No Sun" forState:UIControlStateNormal];
buttonSunStatus = FALSE;
break;
case FALSE:
[sender setTitle:@"Sun" forState:UIControlStateNormal];
buttonSunStatus = TRUE;
break;
}
}
答案 0 :(得分:5)
警告只是告诉您正在使用带有布尔值的switch
语句。对于真正的布尔值,您应该只使用if
- else
语句,而不是switch
。
注意,如果使用true boolean类型,则只会收到此警告。如果您使用BOOL
,则在Mac OS或非64位iOS上为unsigned char
。因此,您不会对这些目标发出此警告。但是,如果您使用bool
(或者如果您在64位iOS目标上使用BOOL
),您将收到此警告。
您可以将switch
语句替换为if
- else
语句以取消此警告。
答案 1 :(得分:1)
我建议您在此方案中使用简单的if / else,原样如下:
if (buttonstatus){
// TRUE code
}
else{
// FALSE code
}
答案 2 :(得分:0)
您应该使用 BOOL
,而不是 bool
。