在我的CloudKit设置中,我有一个Person
记录类型,每个人都有一个Friend
属性,该属性是另一个CKReference
对象的Person
。
我获取了所有Person
CKRecord
个。我在桌子上列出这些人并将他们的朋友列在他们身上。目前,我只需使用CKReference
并使用recordID
单独获取每位朋友。
这是我能看到的唯一方法,但最佳做法是什么?特别是因为我可能吸引了大量的朋友。单独获取所有这些对象似乎违反直觉。
我想知道是否有类似CoreData的方法,你可以选择在主要提取中获取相关对象?例如,当我获取Person
时,它也会自动提取朋友。
答案 0 :(得分:5)
您可以使用'in'谓词查询来获取多个ID。您可以定义这样的谓词:
NSPredicate(format: "To_ID in %@", [recordIdMe, recordIdOther])!
如果您看到recordIdMe
和recordIdOther
,则应该有一组有效的CKReference
个对象。
在CloudKit中,没有自动获取相关记录的功能。
答案 1 :(得分:2)
实际上,您应该收集所有RecordID并将CKFetchRecordsOperation
添加到相关的数据库对象。
你得到一本字典,以帮助你将结果与原始列表相匹配。