NSUserDefaults不在iOS 8中的应用程序和自定义键盘之间存储值

前端之家收集整理的这篇文章主要介绍了NSUserDefaults不在iOS 8中的应用程序和自定义键盘之间存储值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的应用程序和自定义键盘扩展之间共享数据.我在主应用程序目标和自定义键盘目标中打开了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

>这是一个错误.

原文链接:https://www.f2er.com/iOS/330283.html

猜你在找的iOS相关文章