我的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