我正在使用CloudKit,并且在加载数据时正在检查代码中CKAsset是否为nil,例如:

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

}


并得到以下错误:


  “将非可选值类型'CKAsset'与nil比较总是返回true


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

最佳答案

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
}

关于swift - 在CKAsset中检查nil时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44960790/

10-10 20:41