我正在使用CloudKit,在加载数据时我正在检查代码,如果CKAsset是否为零,如:
let img = result.value(forKey: "Picture") as! CKAsset
if img != nil {
}
并收到以下错误:
“将非可选值类型'CKAsset'与nil进行比较始终返回true
我知道它与选项有关,但无法找到解决方案。
答案 0 :(得分:1)
img
不能nil
,因为您强行将其投放到CKAsset
。当然,如果result.value(forKey: "Picture")
返回nil
或者实际上不是CKAsset
,您的应用会在运行时崩溃。
对此进行编码的正确方法如下:
if let img = result.value(forKey: "Picture") as? CKAsset {
// do something with img
} else {
// there is no Picture value or it's not actually a CKAsset
}