CKRecord fetch 返回 1 条记录,RecordID 为空

Posted

技术标签:

【中文标题】CKRecord fetch 返回 1 条记录,RecordID 为空【英文标题】:CKRecord fetch return 1 record with empty 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

【问题讨论】:

【参考方案1】:

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

假设me实际上是一个CKRecord

let RN = me.recordID.recordName

【讨论】:

但是recordID 不是键,它是CKRecord 的属性。 我的代码在另一个应用程序中完美运行。这让我很困惑。

以上是关于CKRecord fetch 返回 1 条记录,RecordID 为空的主要内容,如果未能解决你的问题,请参考以下文章

试图快速修改ckrecord

如何将 PDO::FETCH_GROUP 与表连接一起使用,并且只返回按日期排序的连接表中的 3 条记录

在 Cloudkit 中创建 CKRecord?

使用mysql_fetch_row()函数逐行获取结果集中的每条记录

query返回值

oracle游标