【发布时间】:2012-09-12 09:04:23
【问题描述】:
上周我的 iPhone 应用程序被拒绝,因为我没有遵守 iOS 数据存储指南。我的应用程序基本上会搜索某些数据并将它们显示给可以与其他人(Twitter、电子邮件等)共享它们或将它们保存到“收藏夹”以便以后查看的用户。
之前:
之前,我没有遵循任何特定的数据策略。我的应用程序基本上是将所有搜索数据(图像)下载到 /Documents/ 目录中。一旦用户将特定项目标记为“收藏夹”,它们就会保存到我在 /Documents/ 路径中自定义的“收藏夹”目录中。我的应用程序不使用 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?
【问题讨论】:
标签: iphone objective-c ios xcode