我在开发人员门户中将应用程序组添加到我的应用程序 ID,并在我的配置文件中使用该应用程序 ID。我在 Xcode 中的产品标识符设置为该应用程序 ID。
在我的应用委托(delegate)中,我从 didFinishLaunchingWithOptions 调用它
NSUserDefaults.standardUserDefaults().setObject("hey", forKey: "TEST")
NSUserDefaults.standardUserDefaults().synchronize()
在我的键盘应用程序扩展中,我称之为:
if let test = NSUserDefaults.standardUserDefaults().objectForKey("TEST") as? String
{
println(test)
}
这绝不是真的。如果我删除验证测试并只打印结果,自定义键盘就会崩溃。
编辑 也尝试过同样的崩溃结果:
应用委托(delegate)
var userDefaults = NSUserDefaults(suiteName: "group.jackedgames.myappgroup")
userDefaults.setObject("TEST", forKey: "TEST")
userDefaults.synchronize()
键盘扩展
var userDefaults = NSUserDefaults(suiteName: "group.jackedgames.myappgroup")
var test = userDefaults.objectForKey("TEST") as String
NSLog(test)
在两个目标的“功能”部分中,我选择了启用了此组 ID 的组。
我在这里错过了什么?
最佳答案
设置
RequestsOpenAccess = YES;
设置:
NSUserDefaults * usrInfo = [[NSUserDefaults alloc] initWithSuiteName:@"myKeyboard"];
[usrInfo setObject:theme.icon forKey:@"themeName"]; // This is the new data;
[usrInfo synchronize];
键盘变化:
NSUserDefaults * usrInfo = [[NSUserDefaults alloc] initWithSuiteName:@"myKeyboard"];
[usrInfo synchronize];
NSString * str = [usrInfo objectForKey:@"themeName"];
然后你可以改变键盘,例如,改变它的背景
关于ios - NSUserDefaults standardUserDefaults 不适用于扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620622/