【发布时间】:2014-12-12 05:42:46
【问题描述】:
这段代码看起来非常合乎逻辑。为什么我收到“开关条件具有布尔值”错误?我用它来切换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;
}
}
【问题讨论】:
-
也许它暗示在布尔值的情况下 if..then..else.. 可能是更好的解决方案?
-
如果您将
BOOL与YES和NO一起使用而不是bool与TRUE和FALSE一起使用,您会收到错误吗?当然,在这种情况下,一个简单的if/else语句和一个简单的bool值切换比使用switch语句更容易读写。 -
将类型更改为 BOOL 和 YES/NO 可消除此错误。道歉 - 我以为我在发布这个问题之前已经尝试过了。非常感谢。
标签: objective-c boolean switch-statement