如何使用 CloudKit 将条目从公共数据库保存到私有数据库
Posted
技术标签:
【中文标题】如何使用 CloudKit 将条目从公共数据库保存到私有数据库【英文标题】:How to save an entry from public to private database using CloudKit 【发布时间】:2021-11-28 16:42:29 【问题描述】:使用 CloudKit 将条目从公共数据库保存到私有数据库的最明智的方法是什么
回答了一个类似的问题:here,但我不太明白那些话的解决方案。我不一定需要代码答案(尽管总是很感激),但链接的问题在这里让我感到困惑:
然后,该 recordType 将有一个 CKReference 类型的字段,您可以在其中保存您的用户 ID
这是否意味着公共条目具有对所有保存它的用户的引用数组?
目前我只是根据他们选择保存的公共数据库在用户私人数据库中创建一个全新的条目。当我获取公共项目时,我首先查询保存的项目并交叉引用,这样我就可以例如将“星”按钮设置为已填充或未填充。感觉非常冗长和错误,我想知道人们是如何管理这个的。
示例:
具有两个选项卡/视图的应用 - “公共”和“私人”。公共视图是字符串列表(来自公共数据库)和一个星形图标,显示用户是否保存它,私有视图显示已保存的条目。
谢谢
【问题讨论】:
【参考方案1】:是的,这就是他们的解决方案。如果您想保留自己的,只需在您的私人数据库中创建记录的副本。在我的代码中,我为每种记录类型创建模型;
let publicDB: CKDatabase
let privateDB: CKDatabase
var saveToDB : CKDatabase
那么;
... other code retrieved record R from public DB
现在;
saveToDB = privateDB
saveToDB.save(R, completionHandler:
(record, error) -> Void in
if (error != nil)
// ... error handling...
completion(error)
else
completion(nil)
)
【讨论】:
以上是关于如何使用 CloudKit 将条目从公共数据库保存到私有数据库的主要内容,如果未能解决你的问题,请参考以下文章