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

Ios 在CloudKit中获取CKReference的最佳实践方法是什么?,ios,objective-c,cloudkit,ckreference,Ios,Objective C,Cloudkit,Ckreference,在我的CloudKit设置中,我有一个Person记录类型,每个人都有一个Friend属性,该属性是另一个Person对象的CKReference 我获取所有PersonCKRecords。我把这些人列在一张桌子上,并列出他们的朋友。目前,我只需使用CKReference,并使用recordID单独获取每个朋友 这是我能看到的唯一方法,但什么是最佳实践?特别是因为我可能会吸引很多朋友。单独获取所有这些对象似乎违反直觉 我想知道是否有一种方法很像CoreData,您可以选择在主fetch中获取相关

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

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

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


我想知道是否有一种方法很像CoreData,您可以选择在主fetch中获取相关对象?例如,当我获取一个
人时,它也会自动获取朋友。

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

NSPredicate(format: "To_ID in %@", [recordIdMe, recordIdOther])!
在您看到
recordIdMe
recordIdOther
的情况下,您应该拥有一个有效的
CKReference
对象数组


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

实际上,您应该收集所有记录ID,并向相关数据库对象添加一个
CKFetchRecordsOperation

您可以从字典中获得一个帮助您将结果与原始列表匹配的结果