在 Core Data 中将“默认”数据与用户提供的数据混合在一起

Posted

技术标签:

【中文标题】在 Core Data 中将“默认”数据与用户提供的数据混合在一起【英文标题】:Co-mingling "default" data with user-supplied data in Core Data 【发布时间】:2014-11-24 02:26:16 【问题描述】:

我知道 Apple 会拒绝那些备份可从应用程序包重新加载的数据的应用程序。但是,在我正在开发的应用程序中,我们将提供一些用户希望保留在 Core Data 存储中的基本数据以及他们创建和输入的新数据。因此,用户在使用应用程序时将通过将我们提供的“库”数据与他们自己的数据集成来使用它们。

我担心的是,Apple 是否会要求我以某种方式隔离这些数据,以便捆绑包中的数据不会备份到 iCloud?一旦数据混合在一起,分解就会很复杂,会给应用程序带来过多的负担。

那么,我的问题是我是否必须关注用户数据与应用程序包中提供的数据的混合?

TIA 对此有任何意见,因为我在文档中没有找到任何关于它的信息。

【问题讨论】:

【参考方案1】:

我在我的应用中遇到了类似的情况。它具有示例数据,但示例数据旨在由用户编辑,并且附加了用户特定的元数据。换句话说,数据是可变的,并且属于用户个人创建的其他数据。

在某一时刻,该应用被拒绝了。我首先向审阅者提出上诉,解释说数据是可变的,并且对用户来说是个人的——纯粹从应用程序包中复制数据是不可能的。审稿人不让,所以我上诉,他们站在审稿人一边。游戏结束。

您可能能够摆脱从捆绑包中加载的少量数据 (

我还听说另一位开发人员因在用户商店中包含从网络服务下载的数据而被拒绝。苹果声称可以重新下载数据,这可能部分正确,但忽略了网络服务由第三方运营的事实,下载的数据可能随时被取消共享。它还忽略了用户可以编辑下载的数据,以及客户端应用程序附加了无法下载的用户特定元数据。

那个开发者也被拒绝了。他最终通过引入一套复杂的程序来导入数据,从而通过审核:用户必须首先将数据下载到没有备份的临时保存区域。然后,他们必须明确导入数据,并关闭一个冗长的对话框,警告说导入的数据将有助于他们的 iCloud 备份配额。可怕。但这显然是 Apple 想要的。

在我看来,这条规则非常愚蠢,而且 Apple 似乎完全没有意识到用户界面更改和应用模型大幅重构方面的影响。我无法想象有任何工程师参与制定规则,因为他们肯定会意识到它会给开发人员带来多少不必要的复杂性。我们只能希望他们在某个时候看到原因。

【讨论】:

不是我想听到的,但正是我需要的回应。我想我将不得不重新设计我计划做的事情。感谢您的出色回答。这看起来也是应用内购买内容的问题,它会与用户数据合并。同意您在最后一段中的评论;完全没有意义。

以上是关于在 Core Data 中将“默认”数据与用户提供的数据混合在一起的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将可转换属性保存到 Core Data

在 SwiftUI 中将加载的 json 文件中的更改保存到 Core Data

使用来自 Core Data 的日期获取记录

如何在 .NET Core 3.1 的 Azure Functions 中将 Serilog 配置为默认日志提供程序?

在 SwiftUI 中将 @FetchRequest 与 Core Data 一起使用时修改 nil 排序行为

在 UI 测试中将模拟数据插入 Core Data