8

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

我获取所有Person CKRecord的 s。我将这些人列在一张表中,并列出他们的朋友。目前,我只是CKReference使用 . 并单独获取每个朋友recordID

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

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

4

2 回答 2

5

您可以使用“in”谓词查询来获取多个 id。您可以像这样定义谓词:

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

在您看到的情况下,recordIdMerecordIdOther应该有一组有效CKReference对象。

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

于 2014-12-01T20:01:12.860 回答
2

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

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

于 2015-02-22T07:40:09.843 回答