在 iOS 应用程序包中包含数据

Posted

技术标签:

【中文标题】在 iOS 应用程序包中包含数据【英文标题】:Including data in iOS application bundle 【发布时间】:2014-04-16 14:03:16 【问题描述】:

因此,我有一个新要求,即在我的 ios 应用程序包中包含一些数据(而不是通过 API 调用下载),因为数据非常大,并且不会经常更改。

我目前的设置是:

用户登录后,我从 后端数据库 将其加载到我的对象模型中 NSArchive 它。 下次登录时,我取消存档并使用数据(无需 再次下载整个数据集。嗯,其实我还是下载 数据,但只会下载更改/新记录)。

我正在寻找一种将数据捆绑到我的应用程序中的最佳方法(这将使我不必下载很大的“初始”数据集)。

我知道,我可以选择将我的包中的初始数据集包含在一个 json 文件中,然后将其加载到我的对象模型中并存档,但我想知道是否可以生成一个 NSArchive 文件(其中包含我的初始数据集)并将其包含在我的应用程序包中吗?

欢迎任何建议。

谢谢。

【问题讨论】:

【参考方案1】:

如果您为对象使用符合NSCoding 的类,那么我建议分别使用[NSKeyedArchiver archiveRootObject:toFile:][NSKeyedUnarchiver unarchiveObjectWithFile:] 写入和读取数据。 可以使用setOutputFormat 方法将数据保存为XML 或二进制属性列表。

有关详细信息,请查看 Apple 的 Archives and Serializations Programming Guide 和 NSHipster 的 article on NSCoding。

【讨论】:

以上是关于在 iOS 应用程序包中包含数据的主要内容,如果未能解决你的问题,请参考以下文章

错误 Itms-90339:此捆绑包无效。 info.plist 在应用程序包中包含无效键“CFBundleResourceSpecification”

在我的 iOS 应用中包含 Google+ SDK 时出现捆绑验证错误

在 iOS 模拟器中包含应用程序数据

是否仍然需要在 iOS 应用程序中包含非 Retina 资产?

执行 java.io.File 或 FileInputStream 时如何引用 OSGi 包中包含的文件

iOS 文档文件夹中包含文件的应用程序大小