我有一个使用NSUserDefaults的奇怪案例。我在一个类中设置值并在另一个类中检索它们。
当我检索时,'nil'会返回到应用程序 - 这听起来很可疑。
有没有人碰到这个?解决方案是什么?
NSUserDefaults *appPreferences = [NSUserDefaults standardUserDefaults];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:kFormattedDateStr];
NSLog(@"%@", [appPreferences dictionaryRepresentation]);
NSLog(@"startDateString =<%@>", [appPreferences stringForKey:kStartDateKey]);
NSLog(@"targetDateString=<%@>", [appPreferences stringForKey:kTargetDateKey]);
NSDate *targetDate = [df dateFromString:[appPreferences stringForKey:kTargetDateKey]];
[df release], df = nil;
我已经仔细检查过我正在保存检索具有相同密钥的值。可能是因为我将值保存为“objectForKey”并将其检索为“stringForKey”??
所以,我抛弃了NSUserDefaults - 它显示了我设置的值。我很困惑为什么代码会返回nil!
WebKitWebArchiveDebugModeEnabledPreferenceKey = 0;
WebKitWebGLEnabled = 0;
WebKitWebSecurityEnabled = 1;
WebKitXSSAuditorEnabled = 1;
WebKitZoomsTextOnly = 1;
notificationKey = 0;
selectedGoalKey = "New Goal";
startDateKey = "2011-06-12 15:00:51 +0000";
targetDateKey = "2011-06-13 15:00:51 +0000";
}
2011-06-12 07:22:14.634 GoalBuggerPro[10304:207] startDateString =<(null)>
2011-06-12 07:22:20.886 GoalBuggerPro[10304:207] targetDateString=<(null)>
萨姆。
答案 0 :(得分:1)
问题出在我的想法中.....
我将值存储为对象并将其作为字符串检索。
将代码更改为使用“objectForKey”后,可以访问正确的值。