设置捆绑中的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\"]]];
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...