NSUserDefaults仅保存第一个键的值

时间:2014-02-07 23:43:08

标签: macos nsuserdefaults

我无法设置应用的默认设置。我创建了一个字典,并将该字典注册为默认字典。当我从终端检查默认系统时,只显示第一个键/值已保存。另一个被忽略了。

NSDictionary *defaultsDictionary = @{@"Task" : @"Check mail",
                                     @"Interval" : @3,
                                     @"SoundSetting" : @3,
                                     @"Active" : @YES};
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDictionary];
[[NSUserDefaults standardUserDefaults] synchronize]; // Just for good measure

我可以删除我的默认设置(通过终端使用正确的方法),当我运行我的应用程序时,每次为我的应用程序创建默认值,所以它至少部分工作 - 但仅限于第一个值。有人能帮助我理解我做错了吗?

1 个答案:

答案 0 :(得分:2)

-registerDefaults不会导致保存默认值。这是您用来放置“默认默认值”的内容,如果用户没有设置任何内容,那么您希望存在的值。这非常有用,但听起来并不像你想要的那样。

你可能想要-setObject:forKey:

此外,您无需调用同步。