我已经为我的应用程序设置了应用程序组,以便我可以NSUserDefaults
在应用程序和键盘扩展中访问它们。我有一个问题。我可以成功地将布尔值写入默认值,但是当我在键盘中访问它时,它总是返回 false。我知道它用于密钥的 id 和套件名称是完全相同的。我验证了确实为应用程序和键盘启用了应用程序组,并且套件名称与应用程序组标识符完全匹配。false
从键盘内访问时,什么可能导致它始终存在?
在应用程序中:
NSUserDefaults *SharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.myname.sharedPrefsName"];
[SharedDefaults setBool:YES forKey:@"com.myname.appname.dataName"];
[SharedDefaults synchronize];
我确实确认下次启动应用程序时它确实成功设置为 YES:
NSUserDefaults *SharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.myname.sharedPrefsName"];
BOOL dataIsYes = [SharedDefaults boolForKey:@"com.myname.appname.dataName"]; //YES
然而在键盘中它总是错误的:
let sharedprefs = NSUserDefaults(suiteName: "group.com.myname.sharedPrefsName")!
let data = sharedprefs.boolForKey("com.myname.appname.dataName") //false