我正在编写一个应用程序,用户可以在其中添加和删除多个列表中的对象。为了在应用程序崩溃时保存列表,我希望每次更改时都将它们写入磁盘。我目前的计划是创建一个观察列表的类,因此每次更改时都会收到通知,以便对它们进行归档(列表及其中的所有对象都遵循NSCoding协议)。
应该注意的是,我事先知道会有多少个列表,而且这些列表的长度预计不会超过100个(大多数将是10-20个)。
这是实现我想要实现的目标的最佳方式吗?这应该是我担心的问题,还是仅在应用程序退出时才创建这些列表的纪念品?我还在考虑对NSMutableArray进行子类化,以创建一个在更改时自行保存的类,这样就不会有任何一个类必须知道应该保存的所有列表。
答案 0 :(得分:2)
首先,这里有良好的直觉担心用户的数据。是的,当然你应该修复你的崩溃。但即便如此,您应首先保护用户的数据。其次,您应该担心用户的电池寿命。所以你不应该经常点击他们的闪存驱动器。
如果更改的数量不大,那么我建议创建具有NSMutableArray
(而非is-a NSMutableArray
)的“列表”对象。只要有人拨打addItem:
,您就可以将自己写入磁盘,以便始终保持同步。如果变化很快发生,那么构建蹦床非常容易,如果发生了变化,每隔一秒就会节省一次,但不会超过每秒一次。 (如果这是任何问题,请添加评论,我会发布一些代码或博客;这并不困难。)