【问题标题】:CKRecord fetch return 1 record with empty RecordIDCKRecord fetch 返回 1 条记录,RecordID 为空
【发布时间】:2018-11-16 18:12:15
【问题描述】:

从 iCloud 容器中获取记录,但没有 RecordID。同时在网站上的面板中,我看到了它。我试图从另一个应用程序中提取记录,我在设置中注册了必要的容器 - 并且它被正确提取。

我不明白 - 这是 Xcode 的一个错误?毕竟,提取代码在第二个应用程序中是相同的,一切正常。并且在左下角的调试器中可以看到 RecordID 不为空。

代码:

privateDatabase.perform(query, inZoneWith: nil) { (results, error) -> Void in
    if error != nil {
        print(error!.localizedDescription)
        result(false)

    } else if results != nil, results!.count > 0, let me = results?[0] {
        let RN = (me[.recordID] as! CKRecord.ID).recordName  

错误:

线程 2:致命错误:在展开可选值时意外发现 nil

变量查看控制台:

_recordName __NSCFString * @"UA-kuka-2018-11-16 11:27:59" 0x00000001c0644320

【问题讨论】:

    标签: ios swift cloudkit ckrecord


    【解决方案1】:

    获取CKRecordrecordID 的正确方法是使用recordID 属性。

    假设me实际上是一个CKRecord

    let RN = me.recordID.recordName
    

    【讨论】:

    • 但是recordID 不是键,它是CKRecord 的属性。
    • 我的代码在另一个应用程序中完美运行。这让我很困惑。
    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2018-01-07
    • 2013-06-21
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多