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

NSError code check: Binary operator '==' cannot be applied to two Int operands

有人可以告诉我我做错了什么吗? "error" 是从 CloudKit.

返回的 NSError
if error.code == Int(CKErrorCode.NetworkFailure) {
    //do something
}

给我这个错误:

Binary operator '==' cannot be applied to two Int operands

如果我这样做,效果很好:

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

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

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

如评论中所述,比较两个值的方法是:

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

值得庆幸的是,XCode 7 和 Swift 2 的错误消息已得到改进,因此您会看到:

Cannot invoke initializer for type 'Int' with an argument list of type '(CKErrorCode)'

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