Cloudkit 为每个用户提供不同的记录类型?

Posted

技术标签:

【中文标题】Cloudkit 为每个用户提供不同的记录类型?【英文标题】:Cloudkit different Record Type for every user? 【发布时间】:2015-07-26 04:31:34 【问题描述】:

这是一个场景,不仅我可能已经想到了解决方案...... 我的目标是通过 iCloud 但在不同用户(不同的 iCloud 帐户)之间同步我的应用程序。 “正常”iCloud 同步只能在使用相同 iCloud 帐户的不同设备之间同步。所以我想 CloudKit 是否可以处理这个问题。我阅读了很多有关 CloudKit 的内容,但我不确定我是否正确理解了所有内容...

所以你有一个私有和一个公共数据库。同样,私有数据库仅适用于同一个帐户。所以我需要去公共数据库...... 但是 - 我不希望每个人都能够同步相同的数据,而只是“选定的朋友”、其他 iCloud 帐户......

那么这可能吗?我将如何设计它?

我的第一个想法是用户 A 创建一个具有唯一名称的记录类型。然后用户 B 可以输入该记录类型的唯一名称,通过这样做他可以访问数据,用户 A 和用户 B 可以同步他们的应用程序,但其他用户被排除在外。 如果用户 C 和用户 D 想要一起使用应用程序并保持同步,他们会创建自己的记录类型。

这会是正确的设计吗?如果很多用户使用该应用程序,我会得到很多记录类型...

或者我应该只为每个用户使用一个唯一的 NSpredicate 吗?

或者我怎样才能让不同的用户将他们的应用程序与特定的其他用户同步,而不是与应用程序公共数据库中的每个人同步??

感谢您的帮助!

【问题讨论】:

【参考方案1】:

在 CloudKit 中,无法在生产数据库中创建新的记录类型。

您应该通过向您的 recordTypes 添加一个 CKReference 来解决此问题,该 CKReference 指示记录的所有者。然后在所有谓词中,您必须过滤该 CKReference。

【讨论】:

感谢您的澄清 或者添加一个userKey字段和一个groupKey字段。

以上是关于Cloudkit 为每个用户提供不同的记录类型?的主要内容,如果未能解决你的问题,请参考以下文章

在 CloudKit Dashboard 中创建自定义记录区

CloudKit 仪表板未更新

如何对 CloudKit 记录值求和

CloudKit:获取列表属性中具有特定元素的记录

查询 CloudKit 用户记录给出“无法查询系统类型”

如何访问 cloudkit 中的安全角色