ios - coredata 是否可以允许某些字段在应用程序的用户之间共享?

标签 ios swift core-data cloudkit

应用程序允许个人用户输入字段并保存在他们的设备上

Name of hotel
Location of hotel
Type of Hotel

还有一些附加功能,例如他们是否发现酒店服务好或坏。

现在我的问题出现了,因为我希望某些信息(例如酒店名称及其位置)对所有在最喜爱的酒店部分安装该应用程序的用户可见

核心数据中是否有任何选项允许我这样做,否则我将需要在 cloudkit 上工作,问题是,如果我在 cloudkit 上工作,这是否会使 coredata 不再适用于项目?

最佳答案

首先,让我们澄清一下 CoreData 和 CloudKit 之间的关系,因为这对于您的问题和答案都很重要。

CoreData 是一个持久性框架(工具!),允许您将数据保存在设备本地。 CoreData 并不用于共享数据。它旨在供用户保存数据,并具有 Apple 为隐私设计的所有安全功能。

CloudKit 是一个持久性框架(工具!),允许您在 Apple 云中远程保存数据。由于它是远程保存的,因此能够允许不同的设备和用户访问数据。

CoreData 可以在 Xcode 中自动使用 CloudKit 设置,允许用户将数据保存到本地设备存储,并自动备份到云端。这允许用户在一台设备上保存数据,如果他们在另一台设备上使用该应用程序,则可以访问保存的数据。

但是,CoreData 在与 CloudKit 一起使用时,至少当您需要自动同步时,会实现一个特殊的“区域”,在 iOS14 之前该区域是不可共享的。这很棒,但实际上,您需要清楚地概述私有(private)数据库中有哪些数据以及您想要共享的数据。您需要在应用中解决其他注意事项和复杂情况,例如配置编辑控件,以便用户不会尝试编辑他们无权访问的内容。

您的问题听起来像是您只想与其他人共享用户存储的部分数据。此外,共享数据听起来像是许多用户数据(如评级)的聚合。在这种情况下,最好使用某些后端程序处理该数据并将其作为单独的 CloudKit 共享提供。理由是,您不会希望要求用户下载数百、数千、数万条用户评论,并为每个需要的人每次处理它们。

关于ios - coredata 是否可以允许某些字段在应用程序的用户之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63474004/

相关文章:

swift - 试图理解 UILabel 的行为。

objective-c - 我可以向 Objective-C 公开 Swift 默认参数值吗?

ios - 在 api 调用之前从核心数据表中删除数据在 swift 中不起作用

ios - 核心数据在过滤器中使用聚合函数

ios - 如何在 iOS 7 的 UITextView 中设置属性文本的颜色和对齐方式?

通过用户代理检测 iPhone 应用程序操作系统

ios - CollectionView 在另一个 CollectionViewCell 中

ios - 如何根据剩余高度来布局 UIImageViews?

ios - 核心数据安装

core-data - NSManagedObject 是否保留其 NSManagedObjectContext?