如何在iOS中存储序列号的动态列表

时间:2015-11-20 06:53:56

标签: ios core-data

在我的iOS应用程序中,我需要跟踪已从服务器接收的序列号以及需要检索的序列号。我希望能够在应用程序终止或崩溃的情况下存储它。

我正在尝试决定使用哪种存储方法:核心数据,plist等。

序列号列表是动态的,可以改变很多。任何关于如何决定存储的指针都将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果您的问题中没有更详细的细节,很难给出准确的答案。但是,可以提供的是关于使用上面列出的存储系统的好处/失败的一些见解。

我会远离使用plist,因为您的数据是动态的并且可能会发生很大变化。每次保存到plist时,都需要覆盖整个文件。这意味着要更改单个值,您必须检索所有值,进行单个更改,并将所有值保存回plist。这不是进行此类保存的模块化方式,如果您有大量信息正在发生变化并且需要一直保存,则可能会出现问题。另一方面 - 设置plist保存/读取写入结构非常简单快捷。

应该使用NSUserDefaults。保存用户设置和首选项。使用NSUserDefaults非常简单,但如果数据量非常大,从长远来看可能会变得非常困难。从NSUserDefaults返回的值也是不可变的。这可能是也可能不是您需要的问题。

除非您的序列号非常大,否则CoreData对您正在做的事情可能过度。就个人而言,我会与CoreData一起了解它如何处理动态值以及与plist和NSUserDefaults相比保存对象的速度。缺点是CoreData有点学习曲线。除非你以前使用它,否则很容易使用它走错路。

关于使用哪个存储选项的指针,做一些研究。列出每个存储选项的优缺点。问问自己您的数据有多大,以及什么是最佳解决方案。您已经知道数据是动态的,可能会发生很大变化。查看每个存储解决方案的性能。

以下是直接来自Apple的一些有用的阅读材料链接:

Plist

NSUserDefaults

CoreData