【问题标题】:iOS App Rejected - Data Storage GuidelinesiOS 应用被拒绝 - 数据存储指南
【发布时间】: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


    【解决方案1】:

    A)这个数据策略听起来要好得多,也许下面列出了一个小调整。

    B)您不需要使用“不备份”属性标记这些文件。此外,您甚至不需要手动清除这些文件。这些文件不会通过 iTunes 或 iCloud 备份,只会在磁盘空间不足的某些极端情况下被清除。

    C) 用户最喜欢的项目当然应该备份到 iCloud。这将是对 iCloud 的正确使用,因为它是有意为用户生成的内容而设计的。

    【讨论】:

    • 但请注意,在可能的情况下,只有指向用户收藏夹的“指针”应该在文档中(并备份),而实际数据(如果很大并且可重新获取)在缓存中.
    • @HotLicks 等待,这意味着如果我有一个 plist 文件,其中包含用户收藏夹的所有 URL,您是说 plist 文件应该在 Documents 文件夹中,而实际的物理文件 (.png和 .text) 应该在 /Library/caches 中?
    • @BlueChips23 -- 基本上,是的。但是您大概可以使用一些判断力——相对较小的文件可以放在 Documents 中,即使理论上它们是可恢复的。 (至少这是我的假设。)整个想法是允许完全恢复,同时将最少量的数据备份到 iCloud。
    猜你喜欢
    • 2016-08-10
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2016-09-16
    • 2014-09-19
    相关资源
    最近更新 更多