Я пишу приложение, в котором пользователь может добавлять и удалять объекты из нескольких списков. Чтобы сохранить свои списки даже в случае сбоя приложения, я хочу записывать их на диск каждый раз, когда они меняются. Мой текущий план состоит в том, чтобы создать класс, который наблюдает за списками и, таким образом, уведомляется каждый раз, когда он изменяется, чтобы архивировать их (списки и все объекты в них следуют протоколу NSCoding).Сохранение списка при каждом изменении
Следует отметить, что я заранее знаю, сколько будет списков, и что эти списки не будут расти до более чем 100 наименований в длину (большинство будет 10-20).
Это лучший способ достичь того, чего я хочу достичь? Если это даже проблема, о которой я беспокоюсь, или допустимо только создавать память этих списков, когда приложение выходит? Я также рассматривал подкласс NSMutableArray, чтобы создать класс, который сохраняет себя всякий раз, когда он изменяется, поэтому ни один класс не должен знать обо всех списках, которые должны быть сохранены.
Возможно, было бы лучше исправить ошибки, чем архивировать списки снова и снова ... запись на диск может быть дорогостоящим –
В частности, я не знаю о каких-либо авариях, о которых я знаю. Я просто пытаюсь объяснить любые случаи внешнего края. Если телефон теряет питание или пользователь закрывает приложение извне (т. Е. Дважды щелкает кнопку, чтобы видеть недавно использованные приложения и закрывает приложение оттуда) и т. Д., Приложение проходит обычные методы очистки? –
В таком случае, возможно, вы должны просто сохранить свои данные в 'applicationWillEnterBackground:', потому что это будет вызываться каждый раз, когда нажата кнопка «Дом» или кнопка блокировки, или пользователь переключается на другое приложение. –