iOS的settings bundle中开关button(Toggle Switch)取不到值的问题
Posted cxchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS的settings bundle中开关button(Toggle Switch)取不到值的问题相关的知识,希望对你有一定的参考价值。
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;)
在Xcode7.2中设置App的settings bundle时发现当bundle元素类型为Toggle Switch时,在App里取不到其变化值.
当中Toggle Switch设置例如以下:
在代码中以例如以下方式读取其值:
BOOL isWarp = [defaults boolForKey:kWarpDrive];
_warpDriveLabel.text = isWarp ? @"Engaged":@"Disabled";
当中kWarpDrive定义例如以下:
#define kWarpDrive @"warp"
奇怪的是在settings中改变该开关button的状态,并不能在App中反应出来…确切的说,App中不管开关处在何种状态,总是读出NO值.
该App的settings bundle还有其它类型的元素,比方文本或多选栏,其它的元素都能够正常读出改变的值,只有Toggle Switch不能够.
遂改变策略在,App启动时先注冊其相应的值:
+(void)regDefaultsFromSettingsBundle{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *dict = @{kWarpDrive:@(YES)};
[defaults registerDefaults:dict];
[defaults synchronize];
}
注意我仅仅注冊了kWarpDrive相应的值,其它的值并没有管.
然后在App中能够正常读出开关改变的值了,That’s All!!!
以上是关于iOS的settings bundle中开关button(Toggle Switch)取不到值的问题的主要内容,如果未能解决你的问题,请参考以下文章
iPhone Xcode Settings.bundle Plist
Setting.bundle 仅用于应用商店配置 - iOS