NSUserDefaults standardUserDefaults不支持扩展 [英] NSUserDefaults standardUserDefaults not working with extension

查看:136
本文介绍了NSUserDefaults standardUserDefaults不支持扩展的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在开发者门户网站中将应用程序组添加到我的应用程序ID,并在我的配置文件中使用该应用程序ID。 Xcode中的我的产品标识符设置为该应用程序ID。

I added App Groups to my app ID in the developer portal and am using that App ID in my provisioning profile. My Product Identifier in Xcode is set to that app ID.

在我的应用程序委托中,我从didFinishLaunchingWithOptions调用此

In my app delegate I call this from didFinishLaunchingWithOptions

NSUserDefaults.standardUserDefaults().setObject("hey", forKey: "TEST")
NSUserDefaults.standardUserDefaults().synchronize()

在我的键盘应用扩展程序中,我称之为:

In my keyboard app extension I call this:

if let test = NSUserDefaults.standardUserDefaults().objectForKey("TEST") as? String
 {
    println(test)
 }

这从不是真的。如果我删除验证测试并打印结果,则自定义键盘会崩溃。

This never is true. If I remove the validation test and just print the result the custom keyboard crashes.

编辑
我也尝试了同样的崩溃结果:

EDIT Have also tried this with same crash result:

App Delegate

App 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启用了组。

In the "Capabilities" section of both targets I have the groups enabled with this group ID selected.

我在这里缺少什么?

推荐答案

从iOS设置菜单中删除键盘,然后再次添加允许完全访问权限。它应该可以工作。

Remove your keyboard from the iOS settings menu and add it again with "allow full access permission". It should work.

如果它仍然不起作用,请在应用程序组的功能部分中检查目标配置中是否包含应用程序和键盘扩展程序是固定的。

If it still doesn't work, check for both containing application and keyboard extension in target configuration in "Capabilities" section in app group that there are everything is fixed.

这篇关于NSUserDefaults standardUserDefaults不支持扩展的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆