Существует несколько способов сохранить состояние вашего приложения до его закрытия и восстановить его при повторном запуске.Лучший подход действительно зависит от вашего приложения.
Если у вас есть простая объектная модель с одним корневым объектом, и вам, как правило, нужна вся объектная модель в памяти сразу, тогда вы можете найти протокол NSCoding (см.ссылка ниже) хороший способ сохранения состояния.
http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Protocols/NSCoding_Protocol/Reference/Reference.html
Любой из объектов, которые вы хотите сохранить, должен реализовать два метода этого протокола:
- (void)encodeWithCoder:(NSCoder *)aCoder // to serialise the object
- (id)initWithCoder:(NSCoder *)aCoder // to restore an object
После того, как вы реализовали эти методы в любом изобъекты, которые вы хотите сохранить, вы можете сериализовать свой граф объектов следующим образом:
- (void)applicationWillTerminate:(UIApplication *)application {
[NSKeyedArchiver archiveRootObject:yourRootObject toFile:someFilePath];
}
Когда вы хотите восстановить заархивированные объекты:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
id yourRootObject = [NSKeyedUnarchiver unarchiveObjectWithFile:someFilePath];
}
В качестве альтернативы, если объект вашего приложениямодель немного сложнее, вы могли бы рассмотреть использование Core Data.
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html
Наконец, хотя систему пользовательских значений по умолчанию можно использовать для хранения и извлечения значений, ее лучше всего использовать для простого применения.настройки (или настройки).На самом деле он не предназначен для сохранения всего состояния вашего приложения.