在CKAsset中检查nil时出错

时间:2017-07-07 00:33:35

标签: swift cloudkit

我正在使用CloudKit,在加载数据时我正在检查代码,如果CKAsset是否为零,如:

let img = result.value(forKey: "Picture") as! CKAsset
if  img != nil {

}

并收到以下错误:

  

“将非可选值类型'CKAsset'与nil进行比较始终返回true

我知道它与选项有关,但无法找到解决方案。

1 个答案:

答案 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
}