我正在编写一个应用程序,用户可以在其中添加和删除多个列表中的对象。为了在应用程序崩溃时保存它们的列表,我想在每次它们发生变化时将它们写入磁盘。我目前的计划是创建一个观察列表的类,以便存档它们(列表和其中的所有对象都遵循NSCoding协议)。
应该注意的是,我提前知道会有多少个列表,并且这些列表的长度预计不会超过100个项目(大多数将是10-20个)。
这是实现我想要实现的目标的最佳方法吗?这应该是我担心的问题吗,或者当应用程序退出时只创建这些列表的纪念品是可以接受的吗?我还在考虑对NSMutableArray进行子类化,以创建一个可以在发生更改时自动保存的类,这样就不会有任何一个类知道应该保存的所有列表。
发布于 2012-03-21 11:08:37
首先,这里有很好的本能来担心用户的数据。是的,你当然应该修复你的崩溃。但即便如此,你也应该首先保护用户的数据。其次,你应该担心用户的电池寿命。所以你不应该经常访问他们的闪存盘。
如果更改的数量不是很大,那么我建议创建具有-a NSMutableArray (而不是is-a NSMutableArray)的“列表”对象。您可以在任何时候有人调用addItem:时将自己写入磁盘,以便始终保持同步。如果变化发生得非常快,那么很容易就可以建造可以节省“如果有变化的话每一秒,但不会超过一秒一次”的弹床。(如果这有任何问题,请添加评论,我将发布一些代码或博客;这并不困难。)
https://stackoverflow.com/questions/9797720
复制相似问题