switch条件有布尔值吗?

Edw*_*ted 1 boolean objective-c switch-statement

这段代码似乎很合乎逻辑.为什么我得到"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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 6

警告只是告诉您使用switch带有布尔值的语句.对于真正的布尔值,您应该只使用if- elsestatement,而不是switch.

注意,如果使用true boolean类型,则只会收到此警告.如果您使用BOOL,那就是unsigned char在Mac OS或非64位iOS上.因此,您不会对这些目标发出此警告.但是如果您使用bool(或者如果您BOOL在64位iOS目标上使用),您将收到此警告.

您可以switch使用if- else语句替换该语句以禁止显示此警告.