我正在尝试在我的应用程序和自定义键盘扩展之间共享数据.我在主应用程序目标和自定义键盘目标中打开了App Groups.在我的主应用程序中,我添加了一个具有以下内容的对象:
NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.mycompany.myapp"]; [userDefaults setobject:someObject forKey:@"KEY"];
在控制台中打印出[userDefaults dictionaryRepresentation]会显示该对象已被保存,调用[userDefaults objectForKey:@“KEY”]也是如此.
但是,当我尝试在自定义键盘扩展中访问此对象时:
NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.mycompany.myapp"]; Nsstring *value = [userDefaults objectForKey:@"KEY"];
值为nil,对[userDefaults dictionaryRepresentation]的调用不会显示上面保存的条目.我正在使用Xcode 6 beta 3.有什么想法吗?
UPDATE
在Xcode 6 beta 5中修复
解决方法
一些可能的解决方案是:
>您的应用程序组设置不正确,或者您没有在initWithSuiteName中使用正确的组标识符:
>您尚未为键盘启用网络访问权限.当您为键盘禁用网络访问时,This document将声明以下内容(默认行为):
No shared container with containing app
>这是一个错误.