iOS:App Groups缺少用户默认密钥

时间:2018-06-07 08:25:12

标签: ios objective-c swift nsuserdefaults today-extension

我有一个今天扩展的应用程序。我在开发人员门户中创建了一个应用程序组,并在我的xcode项目中创建了目标,在我的应用程序和今天目标的功能中链接了该组。

所以在应用方面,我正在保存我的价值观:

NSUserDefaults *prefs = [[NSUserDefaults alloc] initWithSuiteName:suite];
[prefs setObject:value forKey:key];
[prefs synchronize];

suite属性是在开发人员门户中创建的组的名称。值是NSDictionary。

 NSDictionary* savedDict = [prefs objectForKey:key];

调用此方法可以为我提供正确的值

在扩展端,我正在使用swift并试图像我这样使用UserDefaults

let userDefaults = UserDefaults.init(suiteName: "group.cryptochange.favorites")
let savedDict = userDefaults?.dictionary(forKey: "Favorites");

问题是,savedDict是零。

当我打印出用户默认设置中的所有按键时,我会在应用程序端看到“收藏夹”键,但如果我打印出扩展程序中的按键,则此键缺失。

有人知道问题的位置或内容吗?

提前致谢

编辑1: 我只是认识到它适用于调试版本,但是当我将方案更改为发布时

编辑2: 我刚检查了我的应用程序的文档目录,看到我的应用程序组文件,其中包含我保存的值。 当我查看扩展名的文档dir时,没有这样的文件。这是否按预期工作? 在我的扩展代码中设置“test”值后,文件将显示测试值

1 个答案:

答案 0 :(得分:0)

  1. 您必须确保: suite =“group.cryptochange.favorites” key =“收藏夹”

  2. 您必须检查Extension是群组应用的成员

  3. 您应该检查“投射类型”是否正确

  4. 我希望我的答案很有用