使用默认数据时,请遵守iOS数据存储指南(2.23)

时间:2014-05-31 19:50:23

标签: ios core-data nspersistentstore fetched-properties

我做了一些研究并了解了基本问题。我的问题在于战略。

背景:我提交的应用程序旨在帮助足球教练管理他们的阵容。它因为理由而被拒绝2.23:在发布时,它为位置和编队创建默认核心数据实体。它还为新用户创建了一个示例团队,作为教程逐步完成。这些实体都存储在应用程序文档目录中的持久存储中,该目录会自动备份到iCloud。他们说这是4MB的数据 - 我只能重新创建60kB,这听起来是正确的 - 无论哪种方式,Apple都不希望默认数据进入iCloud,因此拒绝。

问题:修复方法是使用NSURLIsExcludedFromBackupKey从备份中排除默认数据。这让我有两个选择:

- 轻松选择:首次启动时,只需将应用程序文档目录的NSURLIsExcludedFromBackupKey设置为YES即可。然后,在用户输入任何自己的数据后,将其设置为NO,并使用NSUserDefault在后​​续启动时保持该设置。这可以让我把所有东西都保存在一个持久存储中,虽然默认数据会在那时备份......我猜这在技术上仍然会破坏规则。但是,如此少量的默认数据,苹果会抓住它吗?还是小心点?

- 艰难选择:使用两个持久性存储,一个用于从备份中排除的默认数据,另一个用于用户输入的数据,并且实现获取的属性以合并要运行的应用程序的数据。可能是"对"回答,但这听起来很痛苦,我真的想避免学习如何做到这一点,并重新设计我的数据模型和我所有的东西。

所以在我赌博另一周的审查时间之前,是否有任何关于简单方法是否有效的想法?还是其他任何想法?

1 个答案:

答案 0 :(得分:1)

好吧,我抓住了一个轻松的方法......它有效!该应用程序在重新提交时获得批准。同样,我怀疑种子数据的微小大小可能有所帮助。如果这些数据足够大,可以对用户的iCloud存储产生重大影响,那么我认为采用多种持久存储的硬性方法是一种道德义务。