有很多关于使用注册用户默认设置的答案,我看起来很辛苦,并仍然被我看到的行为难倒。registerDefaults没有反映在设置应用程序
在我的设置包中,我有一个拨动开关,我给标识符'分享'给它一个默认值YES。我在设置应用程序中看到此切换开关,但它不会默认为开。即使我从手机中删除应用程序并重新安装。
在我didfinishlaunchingwithoptions方法,我有以下:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"sharing"];
[defaults registerDefaults:appDefaults];
[defaults synchronize];
如果我测试一下,看看:
NSLog(@"%d",[defaults boolForKey:@"sharing"]);
默认设置,但它不会反映在设置应用程序。
如果我然后去设置应用程序,并翻转开关并测试值:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"sharing"];
这仍然将导致YES,我期望的那样。
而且,当时我又拨至关闭和测试:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"sharing"];
它不会如预期的连接现在工作正常。
因此,基本上一切工作都很好,除了在设置更改之前,默认情况下以编程方式存在,但它不会在设置应用程序中直观显示。
希望有人能指出我失踪的东西!
感谢
模拟到马特,我有默认值设置为在我的设置包中键入字符串,而不是布尔值。那里同样的问题。 – Bjinse 2013-04-02 21:51:03