在 CloudKit 中获取 CKReferences 的最佳实践方法是啥?
Posted
技术标签:
【中文标题】在 CloudKit 中获取 CKReferences 的最佳实践方法是啥?【英文标题】:What is the best practice approach to fetching CKReferences in CloudKit?在 CloudKit 中获取 CKReferences 的最佳实践方法是什么? 【发布时间】:2014-12-01 15:14:21 【问题描述】:在我的 CloudKit 设置中,我有一个 Person
记录类型,每个人都有一个 Friend
属性,这是另一个 Person
对象的 CKReference
。
我获取所有Person
CKRecord
s。我将这些人列在一张表中,并列出他们的朋友。目前我只使用CKReference
并使用recordID
单独获取每个朋友。
这是我能看到的唯一方法,但最佳做法是什么?特别是因为我可能会吸引大量的朋友。单独获取所有这些对象似乎违反直觉。
我想知道是否有类似 CoreData 的方法,您可以在其中选择在主提取中提取相关对象?例如,当我获取Person
时,它也会自动获取朋友。
【问题讨论】:
【参考方案1】:您可以使用“in”谓词查询来获取多个 id。您可以像这样定义谓词:
NSPredicate(format: "To_ID in %@", [recordIdMe, recordIdOther])!
在您看到recordIdMe
和recordIdOther
的情况下,您应该有一组有效的CKReference
对象。
在 CloudKit 中没有自动获取相关记录的功能。
【讨论】:
【参考方案2】:其实你应该收集所有的 RecordID 并在相关的数据库对象中添加一个CKFetchRecordsOperation
。
您会得到一个字典,以帮助您将结果与原始列表进行匹配。
【讨论】:
以上是关于在 CloudKit 中获取 CKReferences 的最佳实践方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 CloudKit 获取 sharedCloudDatabase 自定义区域中的记录
如何在私有数据库 CloudKit 中获取 RecordType 的所有名称