我想知道你对iPhone上的持久对象(NSDictionarys和NSMutableArrays of Objects)的看法是什么?
我脑子里经历了几个选择:
1。)我们坚持使用NSUserDefaults,这种方法似乎最简单,我想继续使用它。我想要存储的数据可能只有几千字节的对象。
2。)使用NSKeyedArchiver(确切的名称包括我atm)进行存档/序列化,然后将其放入SQLITe数据库。但问题是:
我需要在手机上更改数据时自动保存。 NSUserDefaults有一个同步方法,但对于方法#2,我必须重新存档整个对象数组,然后将其存储回数据库。这似乎做了很多工作。
3。)忘了这个我听说过CoreData能够处理这类事情,但我不确定我是否完全理解。
那你们觉得怎么样?你还有其他建议吗?
答案 0 :(得分:6)
我建议使用额外的英里并使用核心数据。
...不要害怕,试试吧。从小处着手继续前进。
答案 1 :(得分:4)
我认为NSDictionary
和NSArray
有writeToFile:atomically:
个实例方法,可以将它们序列化并将它们写入给定的文件名。您可以添加NSDictionary
或NSArray
的观察者,这些观察者在更改后会将其写入。
答案 2 :(得分:1)
我在自己的一些应用程序中使用NSKeyedArchiver
和writeToFile:atomically:
取得了巨大成功。
表现一直很好。你可以反复坚持几千行文字而不注意。
就个人而言,除非你需要查询,否则我会避免使用sqlite。只使用填充NSDictionary
NSArray
,您会感到惊讶
使用NSKeyedArchiver
的好处是,一旦开始创建“域对象”,就可以以相同的方式保留它们。出于这个原因,我99%的时间使用NSKeyedArchiver
。