Spe*_*tak 5 nsuserdefaults ios swift ios8
我在开发人员门户中将应用程序组添加到了我的应用程序ID,并在我的配置文件中使用了该应用程序ID.Xcode中的我的产品标识符设置为该应用程序ID.
在我的app委托中,我从didFinishLaunchingWithOptions调用它
NSUserDefaults.standardUserDefaults().setObject("hey", forKey: "TEST")
NSUserDefaults.standardUserDefaults().synchronize()
Run Code Online (Sandbox Code Playgroud)
在我的键盘应用程序扩展中,我称之为:
if let test = NSUserDefaults.standardUserDefaults().objectForKey("TEST") as? String
{
println(test)
}
Run Code Online (Sandbox Code Playgroud)
这从来都不是真的.如果我删除验证测试并打印结果,则自定义键盘会崩溃.
编辑也尝试了相同的崩溃结果:
App代表
var userDefaults = NSUserDefaults(suiteName: "group.jackedgames.myappgroup")
userDefaults.setObject("TEST", forKey: "TEST")
userDefaults.synchronize()
Run Code Online (Sandbox Code Playgroud)
键盘扩展
var userDefaults = NSUserDefaults(suiteName: "group.jackedgames.myappgroup")
var test = userDefaults.objectForKey("TEST") as String
NSLog(test)
Run Code Online (Sandbox Code Playgroud)
在两个目标的"功能"部分中,我启用了已选择此组ID的组.
我在这里错过了什么?
小智 1
放
RequestsOpenAccess = YES;
Run Code Online (Sandbox Code Playgroud)设置:
NSUserDefaults * usrInfo = [[NSUserDefaults alloc] initWithSuiteName:@"myKeyboard"];
[usrInfo setObject:theme.icon forKey:@"themeName"]; // This is the new data;
[usrInfo synchronize];
Run Code Online (Sandbox Code Playgroud)键盘更改:
NSUserDefaults * usrInfo = [[NSUserDefaults alloc] initWithSuiteName:@"myKeyboard"];
[usrInfo synchronize];
NSString * str = [usrInfo objectForKey:@"themeName"];
Run Code Online (Sandbox Code Playgroud)然后您可以更改键盘,例如更改其背景