如何解决设置捆绑中的ToggleSwitch在iPhone中不起作用?
| 我的设置包中有一个Toggle Switch,但它第一次无法使用。当我再次更改设置中的值时,它正在正确工作。 甚至我在使用值之前都要进行同步:NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults synchronize];
if([userDefaults boolForKey:@\"KeyName\"]) {
//Do Some Work
}
我现在要做什么?
解决方法
我认为您在这里遇到的是一个非常奇怪的问题,即直到用户第一次运行设置应用程序时,才加载设置捆绑包中的设置。
直接来自苹果公司:
对于新安装的应用程序,
来自的默认首选项值
应用程序的“设置”捆绑包不是
设置直到设置应用程序
运行。这意味着如果用户运行
您的应用程序在运行之前
设置,指定默认值
在您的“设置”捆绑中
不可用。
有关更多信息,请参阅:Apple的文档
,由于您尚未注册默认值,因此我认为您正面临此问题。
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:@\"defaultValueFOrKey\",@\"Key\",nil]];
在正常情况下,我们将为此设置包中所有键的默认值创建一个plist文件,并将其注册为
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@\"Defaults\" ofType:@\"plist\"]]];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。