iOS App Rejected - Data Storage Guidelines
上周我的 iPhone 应用程序被拒绝,因为我没有遵守 iOS 数据存储指南。我的应用程序基本上会搜索某些数据并将它们显示给可以与其他人(Twitter、电子邮件等)共享它们的用户,或者将它们保存到"收藏夹"以便以后查看。
之前:
之前,我没有遵循任何特定的数据策略。我的应用程序基本上是将所有搜索数据(图像)下载到 /Documents/ 目录中。一旦用户将特定项目标记为 "Favorite",它们就会保存到 /Documents/ 路径中我自定义的 "Favorites" 目录中。我的应用程序不使用 iCloud。此外,一旦用户看到它们并且不再在同一个视图中,我也忘记清除下载的搜索数据(图像)。从那以后,我发现整个策略很糟糕,也是我的应用被拒绝的原因。
现在:
现在,由于我的应用被拒绝,我已经加倍努力修复我的应用并使其尽可能完美。我现在遵循的数据策略非常简单:
a) 所有下载的搜索数据(搜索结果的图像和 pList 文件)现在都在 /Library/Caches 目录中创建。
b) 当用户将项目添加到"收藏夹"时,与该项目相关的数据(图像和文本)随后会保存到 /Documents/ 目录中。
c) /Library/Caches 和 /Documents/ 目录中的所有文件都标有属性"不备份",因为我不想在 iCloud 上占用任何空间。
d) 一旦用户移动到不同的视图并且不再访问搜索结果,/Library/Caches 目录中的所有搜索相关数据都会立即清除。
e) 在应用程序启动时,我会检查 /Library/Caches 目录中是否有任何来自先前会话的残留文件,以防应用程序过早终止。如果找到之前搜索会话的任何残留文件,我会删除它们。
我的问题是:
A) 我现在遵循的数据存储策略是否可以接受?
B) 我是否需要在 /Library/caches/ 中使用"不备份"属性标记任何与搜索相关的文件,或者这是否不必要?
C) 我应该在 /Documents/ 目录中使用"不备份"属性标记与用户最喜欢的项目相关的数据,还是可以将用户最喜欢的项目备份到 iCloud?
A) 这个数据策略听起来好多了,也许下面列出了一个小调整。
B) 您不需要使用"不备份"属性标记这些文件。此外,您甚至不需要手动清除这些文件。这些文件不会通过 iTunes 或 iCloud 进行备份,并且只会在磁盘空间不足的某些极端情况下被清除。
C) 用户最喜欢的项目当然应该备份到 iCloud。这将是对 iCloud 的正确使用,因为它是有意为用户生成的内容而设计的。