NSError代码检查:二进制运算符'=='不能应用于两个Int操作数

时间:2015-09-05 20:12:30

标签: ios swift nserror

有人能告诉我这里我做错了什么吗? “error”是从CloudKit返回的NSError。

if error.code == Int(CKErrorCode.NetworkFailure) {
    //do something
}

给我这个错误:

  

二元运算符'=='不能应用于两个Int操作数

如果我这样做,它可以正常工作:

if error.code == 4 {
    //do something
}

其中4是实际的错误代码。

1 个答案:

答案 0 :(得分:4)

这里的问题是Int没有一个以CKErrorCode作为输入的构造函数。

在评论中,比较两个值的方法是:

if error.code == CKErrorCode.NetworkFailure.rawValue {
    //do something
}

值得庆幸的是,XCode 7和Swift 2的错误消息已经改进,所以你会看到:

  

无法为类型' Int'调用初始化程序。使用类型'(CKErrorCode)'

的参数列表

哪一个更好地指示出了什么问题。