在iphone上保留数据对象

时间:2010-01-02 08:27:15

标签: iphone core-data persistence

我想知道你对iPhone上的持久对象(NSDictionarys和NSMutableArrays of Objects)的看法是什么?

我脑子里经历了几个选择:

1。)我们坚持使用NSUserDefaults,这种方法似乎最简单,我想继续使用它。我想要存储的数据可能只有几千字节的对象。

2。)使用NSKeyedArchiver(确切的名称包括我atm)进行存档/序列化,然后将其放入SQLITe数据库。但问题是:

我需要在手机上更改数据时自动保存。 NSUserDefaults有一个同步方法,但对于方法#2,我必须重新存档整个对象数组,然后将其存储回数据库。这似乎做了很多工作。

3。)忘了这个我听说过CoreData能够处理这类事情,但我不确定我是否完全理解。

那你们觉得怎么样?你还有其他建议吗?

3 个答案:

答案 0 :(得分:6)

我建议使用额外的英里并使用核心数据。

  • 首先,您将学习新的事物,好的事物。
  • 但是,随着数据以块的形式提取而不需要读取整个数据集,您的应用程序将更快启动并更流畅地处理数据。

...不要害怕,试试吧。从小处着手继续前进。

答案 1 :(得分:4)

我认为NSDictionaryNSArraywriteToFile:atomically:个实例方法,可以将它们序列化并将它们写入给定的文件名。您可以添加NSDictionaryNSArray的观察者,这些观察者在更改后会将其写入。

答案 2 :(得分:1)

我在自己的一些应用程序中使用NSKeyedArchiverwriteToFile:atomically:取得了巨大成功。

表现一直很好。你可以反复坚持几千行文字而不注意。

就个人而言,除非你需要查询,否则我会避免使用sqlite。只使用填充NSDictionary

NSArray,您会感到惊讶

使用NSKeyedArchiver的好处是,一旦开始创建“域对象”,就可以以相同的方式保留它们。出于这个原因,我99%的时间使用NSKeyedArchiver