IOS预期表达错误

时间:2016-07-18 15:19:39

标签: ios objective-c if-statement switch-statement

我想在交换机内使用if语句,但我不断得到预期的表达式错误。如果有人能帮助我解决这个问题,我将不胜感激。

switch ([ApplicationModel getApplicationType]) {
        case CSApplication: {}
            break;
        case RAApplication: 
        {
            if (indexPath.row == FloorLevelIndex || indexPath.row == RoomIndex) 
            {
                [cell setUserInteractionEnabled: YES];            
            }
        }
            break;
        default:
            break;
    }

3 个答案:

答案 0 :(得分:3)

如果FloorLevelIndexRoomIndex是类型,您将无法将数字与类型进行比较(因此错误)。您可能需要这些数字表示或使用NSInteger

定义它们

答案 1 :(得分:1)

确保[ApplicationModel getApplicationType]返回swtich案例支持的有效数据类型。

  

switch语句中使用的变量只能是整数,   可转换整数(byte,short,char),字符串和枚举

应该是这样的:

switch ([ApplicationModel getApplicationType]) {
        case CSApplication: 
             break;

       case RAApplication: 
            if (indexPath.row == FloorLevelIndex || indexPath.row == RoomIndex) 
            {
                [cell setUserInteractionEnabled: YES];            
            }
            break;

       default:
            break;
    }

答案 2 :(得分:0)

我刚刚在我的Xcode中尝试了这个代码,它运行正常:

NSLayoutAttribute attr = NSLayoutAttributeLeft;
switch (attr) {
    case NSLayoutAttributeTop: {}
        break;
    case NSLayoutAttributeLeft: {
        if (YES) {
            NSLog(@"works");
        }
    }
        break;
    default:
        break;
}

所以switch语句的结构是正确的。