gpt4 book ai didi

ios - registerDefaults 未反射(reflect)在设置应用程序中

转载 作者:可可西里 更新时间:2023-11-01 05:38:38 25 4
gpt4 key购买 nike

关于注册用户默认值的使用有很多答案,我仔细看了看,仍然对我所看到的行为感到困惑。

在我的设置包中,我有一个切换开关,我给标识符“共享”并给它一个默认值 YES。我在设置应用程序中看到了这个切换开关,但它没有默认为打开。即使我从手机中删除应用程序并重新安装。

在我的 didfinishlaunchingwithoptions 方法中,我有以下内容:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObject:@"YES" forKey:@"sharing"];
[defaults registerDefaults:appDefaults];

[defaults synchronize];

如果我测试一下:

NSLog(@"%d",[defaults boolForKey:@"sharing"]);

已设置默认值,但未反射(reflect)在设置应用中。

如果我然后转到设置应用程序并将开关打开并测试该值:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"sharing"];

这仍然会导致我期望的是。

然后我将其关闭并再次测试:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL enabled = [defaults boolForKey:@"sharing"];

这将如预期的那样为“否”,现在连接工作正常。

所以,基本上一切正常,除了在更改设置之前,默认值以编程方式存在,但它没有在设置应用程序中直观显示。

希望有人能指出我遗漏了什么!

谢谢

最佳答案

问题是我在 settings.bundle (Root.plist) 中将“开启值”和“关闭值”设置为类型字符串而不是 bool 值。

最初我没有发现错误,因为该应用程序按预期响应并且可以与设置应用程序交互。唯一的问题是设置应用程序的初始“视觉”值设置不正确。当我仔细考虑时,这种行为是有道理的。

本教程帮助我找到了我的错误:

http://useyourloaf.com/blog/2010/5/18/adding-a-settings-bundle-to-an-iphone-app.html

关于ios - registerDefaults 未反射(reflect)在设置应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com