我有一个单例,它有一个NSArray,它是在单例的第一个实例时创建的。我应该在dealloc方法中何时将此数组保存到磁盘?我检查了Apple文档,它说你真的不应该在dealloc但是没有说明在哪里。我是不是每次修改数组都要写入磁盘?这似乎是浪费?
答案 0 :(得分:3)
通常,您应该将状态保存在接近状态更改的时间。如果您保存的状态量非常小,那么您可以等到应用程序委托-applicationWillResignActive:方法被调用。或者你可以让单身注册NSNotificationCenter来观察UIApplicationWillResignActiveNotification。然后保存。
如果您的阵列非常大,那么您可能希望减少保存频率。但是您还必须注意将阵列写入磁盘可能需要多长时间。根据应用程序作为活动状态重新启动的环境,您可能没有太多时间写入磁盘。
您是否了解可能需要编写的最大数据量?这是受限制的还是开放式的?