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

时间:2014-04-16 14:03:17

标签: ios objective-c bundle nsarchiving

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

我目前的设置是:

  • 用户登录后,我从中下载数据(以json格式) 后端数据库
  • 将其加载到我的对象模型中
  • NSArchive it。
  • 在下次登录时,我取消归档并使用数据(不需要 再次下载整个数据集。好吧,实际上我还在下载 数据,但只会下载更改/新记录。)

我正在寻找的是在我的应用程序中捆绑数据的最佳方法(这将使我免于必须下载尺寸较大的“初始”数据集。)

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

欢迎任何建议。

感谢。

1 个答案:

答案 0 :(得分:1)

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

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