假設我的應用程序狀態被解壓縮到一個對象中(以便所有特定於應用程序實例的信息都包含在一個對象中)並且該對象支持nscoding協議。我如何輕鬆地堅持它並將其加載到退出/啓動我的應用程序?如何在退出時輕鬆保持應用程序狀態
我當前的代碼看起來像這樣
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
State* state = (State*)[defaults objectForKey:@"State"];
if(state!=nil)
{
viewController.state = state;
}
}
- (void)applicationWillTerminate:(UIApplication *)application {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.viewController.state forKey:@"State"];
}
但在加載狀態始終爲零,所以,我認爲它是不是最好的模式在那裏:)
原來NSUserDefaults只支持屬性列表對象,如NSArray,NSData等...沒有自定義對象,除非你把它包裝在nsdata中