我应该遵循 iOS 数据存储指南吗?

Posted

技术标签:

【中文标题】我应该遵循 iOS 数据存储指南吗?【英文标题】:Should I follow iOS Data Storage Guidelines? 【发布时间】:2013-11-12 04:29:45 【问题描述】:

我的 ios 应用程序旨在与 iOS 5.0 及更高版本兼容,并且在其目标设置中关闭了 iCloud 功能,我没有与 iCloud 集成。我的应用程序将sqlite 文件和一些图像文件存储到Documents 文件夹中。 sqlite 文件不可下载,但图片可以。

我读过一些帖子,有人说他们的应用提交被拒绝,因为他们不符合 iOS 数据存储指南,但我不确定这是否仅在您的应用启用 iCloud 功能时才需要,是它?我是否应该为我的文件设置NSURLIsExcludedFromBackupKey

提前致谢

编辑

我读过这个here:

在 iOS 5.0 上无法从备份中排除数据。如果您的应用程序必须支持 iOS 5.0,那么您需要将应用程序数据存储在缓存中以避免备份该数据。 iOS 会在必要时从 Caches 目录中删除您的文件,因此如果数据文件被删除,您的应用将需要优雅降级。

但是我需要sqlite 文件在Documents 中才能插入数据...我应该如何处理?

【问题讨论】:

【参考方案1】:

这与您的应用程序是否使用 iCloud 没有任何关系。它与用户对 iCloud 执行备份有关,这超出了您的应用程序的控制范围。

如果您的应用程序中存储在应用程序沙箱中的所有数据都是用户通过使用该应用程序创建和存储的数据,那么 Apple 将不会有数据备份的问题。

他们有不必要地备份可替换文件的问题。如果数据库文件是只读的并且可以从服务器或应用程序包中获取,那么不要让它被备份。但是,如果它开始时大部分是空的,然后随着用户通过应用程序添加数据而添加数据,那么它应该被备份。图片也一样。

【讨论】:

感谢您的回复。数据库文件本身不可下载,但其所有数据大多来自 Web 服务。甚至用户提供的数据也被发送到服务,并且可以从那里检索。图像文件也是如此,它们由用户提供,发送到服务器,并在需要时检索。 要确保:那些不需要备份的文件应该将NSURLIsExcludedFromBackupKey 值设置为NO,并且对需要备份的文件不做任何事情?这样,数据存储指南是否完成?

以上是关于我应该遵循 iOS 数据存储指南吗?的主要内容,如果未能解决你的问题,请参考以下文章

应用程序因未遵循 iOS 数据存储指南而被拒绝

添加 NSURLIsExcludedFromBackupKey 属性后的 iOS 数据存储指南

IOS 5 存储指南

核心数据和 iOS 数据存储指南

如何使用 Core Data 和 iOS 5 存储指南?

iCloud 中保存的意外数据