0
我遇到了一些奇怪的NSUserDefaults行为。我保存我的数据,然后同步,然后执行NSUserDefaults的NSlog以确保其保存。数据显示为从NSlog中正确保存,但是当我完全关闭应用程序(双击主页按钮并杀死应用程序)时,它重新启动时值没有改变。更奇怪的是,如果我通过保存NSUserDefaults重复代码几次,杀死应用程序,重新加载NSUserDefaults,有时它会正确保存,而其他时间则不会。奇怪的iPhone SDK NSUserDefaults行为
我看过这个帖子Strange NSUserDefaults behavior但我打电话同步,所以我不认为这是我的问题。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"MyString" forKey:@"testString"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"%@", [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]);
任何帮助,非常感谢。
真正让我困惑的是,如果standardUserDefaults的NSLog显示数据已保存,为什么它不会在应用程序被杀死之后呢?
感谢
UPDATE
貌似问题是在可变和不可变的数组我被保存到一个NSUserDefaults的查询股价。我在检索数据时使用了mutablecopy,似乎解决了这个问题。
Synchronize返回一个布尔值。你为什么不记录下来,看看它是否快乐。 BOOL结果= [prefs synchronize]; NSLog(@“同步结果=%d”,结果); – danh 2013-02-24 21:21:48