2010-10-22 36 views
1

我需要存储各种类型的数据,并在不同时间从应用程序的不同部分对其进行更新。我有一种印象,我可以使用NSKeyedArchiver来做到这一点,并在必要时使用适当的密钥更新部分数据......非常像数据库。看来NSKeyedArchiver会在每次存档时覆盖整个文件。每次存档时,NSKeyedArchiver是否覆盖整个文件?

我正确的是,NSKeyedArchiver覆盖整个文件,如果是的话,是否有一个策略,你会建议处理这个问题(除了使用SQLLite或CoreData ..我可能必须升级到下一个发布)。我可以将数据分成不同的文件,但这似乎很多工作。

回答

5

是的,NSKeyedArchiver用它的数据替换磁盘上的数据。做你想做的事情可能会采取某种数据库解决方案,但不一定是SQLite。您的数据集有多大?重写整个速度慢吗?

+0

谢谢本。数据集可能会变得非常大,因为它正在存储统计数据,因此我必须在某个时刻用数据库替换存储机制。不知道重写需要多长时间,因为我无法在iOS平台上使用数据库解决方案。 – JMH 2010-10-22 16:29:58