NSError代码检查:二进制运算符'=='不能应用于两个Int操作数
问题描述:
有人可以告诉我我在做什么错吗? “错误”是从CloudKit返回的NSError。NSError代码检查:二进制运算符'=='不能应用于两个Int操作数
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和斯威夫特2的提高,所以你会看到:
Cannot invoke initializer for type 'Int' with an argument list of type '(CKErrorCode)'
这是什么地方出错的好得多的指标。
我认为这是消息已经搞砸了。也许错误是可选的? –
显示更多代码,'error','error.code'和'CKErrorCode'如何定义? – Kametrixom
对不起,我认为该主题涵盖了这一点。 “错误”只是从CloudKit返回的NSError。 NSError的定义是相当标准的。我没有检查,也没有选择权。 –