我的NSUserDefaults
在應用運行或最小化時正常工作。但是,如果我殺了應用程序並重新啓動它,返回的對象是null
。代碼:即使使用同步,NSUserDefaults也不會持續存在
colorDefault = [NSUserDefaults standardUserDefaults];
[colorDefault setObject:myColor2 forKey:@"fieldKey"];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:myColor2, @"fieldKey", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
//[[NSUserDefaults standardUserDefaults] synchronize];
[colorDefault synchronize];
我打電話[[NSUserDefaults standardUserDefaults] synchronize]
在我applicationDidEnterBackground
並在applicationWillTerminate
,沒有成功。我NSLogged這兩種方法,當我殺了應用程序,我注意到只有DidEnterBackground
被稱爲..
感謝您的任何幫助!
顯示在正在返回nil對象,包括它是從哪裏調用的代碼。另外,在你的應用程序中的上述代碼?你認爲registerDefaults:應該做什麼? – jrturton 2012-03-15 17:40:50
什麼是myColor2變量類型?你有沒有閱讀這裏的參考https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html關於registerDefaults如何工作的細節? – 2012-03-15 17:45:14
不知何故,我沒有找到這個較舊的帖子,但我有一個IDENTICAL場景:[here](http://stackoverflow.com/questions/6349648/nsuserdefaults-wont-save-permanantly) 除了我打電話給我在viewDidLoad和viewWillAppear(viewDidLoad每次啓動時都會調用viewDidLoad,所以它顯然需要在那裏) – Gravemind 2012-03-15 20:21:08