Постоянство UIViewController - сохранить состояние в памяти и записать его на диск после завершения работы приложения
Я использую NSCoding для сохранения и восстановления моих контроллеров представления. Однако я сохраняю на диск стек навигации + контроллеры представления каждый раз, когда контроллер представления перемещается или выталкивается.
Это не энергоэффективно, и есть лучший способ.
Думать о NSUserDefaults
, Он сохраняет изменения где-то в памяти (и, если он вызывается повторно как есть, просто перезаписывается), и когда synchronize
вызывается метод, он записывает их на диск. Это действительно сделано, и это супер энергоэффективно.
Так я могу реализовать что-то вроде этого? При каждом вызове сохранять изменения где-то в памяти и когда synchronize/writeToDisk
Метод вызывается для очистки кеша памяти и записи их на диск. Любые идеи будут с благодарностью!
Моя идея состоит в том, чтобы использовать NSCache
, И в application:willResignActive
или же application:willTerminate
достать объект в кеш и записать его на диск.
Спасибо!