CloudKit CKReference 列表

Posted

技术标签:

【中文标题】CloudKit CKReference 列表【英文标题】:CloudKit CKReference List 【发布时间】:2015-08-07 08:02:36 【问题描述】:

所以我有一个包含一个字段的记录,该字段是一个 CKReference 列表。

现在我想批量获取所有引用的(通过此 CKReferences 列表)记录(来自另一种类型)。

有什么想法吗?

【问题讨论】:

【参考方案1】:

假设您有一条记录“公司”,并且他们有一个名为“员工”的 CKReference 列表字段。

为公司进行获取很容易,但是一旦您有了 companyRecord,您现在就想获取它的员工。你可以这样做:

//first you need to create an array of employee record IDs
var employeeRecordIds = [CKRecordID]()
for employeeReference in companyRecord["Employees"] as! [CKReference] 
    employeeRecordIds.append(employeeReference.recordID)

//now you can fetch those employees
var fetchOperation = CKFetchRecordsOperation(recordIDs: employeeRecordIds)
fetchOperation.fetchRecordsCompletionBlock = 
    records, error in
    if error != nil 
        print("\(error!)")
     else 
        for (recordId, record) in records 
            print("\(record)")
        
    

CKContainer.defaultContainer().publicCloudDatabase.addOperation(fetchOperation)

【讨论】:

如果苹果鼓励这样做,为什么不举一个带有反向引用的例子呢? 我删除了关于反向引用的注释,因为它与代码和询问的内容(获取)无关。不知道为什么我一开始就在那里,这只是令人困惑。

以上是关于CloudKit CKReference 列表的主要内容,如果未能解决你的问题,请参考以下文章

CloudKit:获取列表属性中具有特定元素的记录

从 CloudKit 获取包括 CKReference 的数据

CloudKit - 在 CKRecord 中存储多个 CKReference

CKReference 的 CloudKit 订阅通知未按预期工作

CloudKit 上的 CKReference 使用 Swift

如何使用 CKReference cloudkit IOS Swift 为数据库创建良好的结构?