【发布时间】:2018-06-05 07:47:38
【问题描述】:
我在我的应用程序中使用通知扩展来更改通知声音。
当用户在设置页面中关闭UISwitch 时,我将保存在NSUserDefaults 和boolean 中以继续跟踪状态。
但是我有两个不同的故事板,用于两种不同的语言,每个都有自己的风格。
当我使用情节提要 A 并在控制台中打印 boolean 的状态时,它正在正确打印状态。但是当我更改语言时,会加载不同的故事板 B。 boolean 总是返回 false。
虽然布尔值总是返回false,但我已经测试了通知的声音,它工作正常。
知道为什么boolean 总是返回false 吗?我需要正确的值才能在设置页面中正确显示铃声的状态。
这是我正在使用的代码:
- (void)setPlayDefaultSound:(BOOL)playDefaultSound
{
NSUserDefaults *def = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.xx.xxx.NotificationServices"];
[def setBool:playDefaultSound forKey:@"playDefaultSound"];
[def synchronize];
}
- (BOOL)playDefaultSound
{
NSUserDefaults *def = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.xx.xxx.NotificationServices"];
return [def boolForKey:@"playDefaultSound"];
}
这是通知服务扩展的 Info.plist 的屏幕截图:
【问题讨论】:
标签: ios objective-c xcode nsuserdefaults ios-app-extension