在CloudKit中获取CKReferences的最佳实践方法是什么?

时间:2014-12-01 15:14:22

标签: ios objective-c cloudkit ckreference

在我的CloudKit设置中,我有一个Person记录类型,每个人都有一个Friend属性,该属性是另一个CKReference对象的Person

我获取了所有Person CKRecord个。我在桌子上列出这些人并将他们的朋友列在他们身上。目前,我只需使用CKReference并使用recordID单独获取每位朋友。

这是我能看到的唯一方法,但最佳做法是什么?特别是因为我可能吸引了大量的朋友。单独获取所有这些对象似乎违反直觉。

我想知道是否有类似CoreData的方法,你可以选择在主要提取中获取相关对象?例如,当我获取Person时,它也会自动提取朋友。

2 个答案:

答案 0 :(得分:5)

您可以使用'in'谓词查询来获取多个ID。您可以定义这样的谓词:

NSPredicate(format: "To_ID in %@", [recordIdMe, recordIdOther])!

如果您看到recordIdMerecordIdOther,则应该有一组有效的CKReference个对象。

在CloudKit中,没有自动获取相关记录的功能。

答案 1 :(得分:2)

实际上,您应该收集所有RecordID并将CKFetchRecordsOperation添加到相关的数据库对象。

你得到一本字典,以帮助你将结果与原始列表相匹配。