我有一个今天扩展的应用程序。我在开发人员门户中创建了一个应用程序组,并在我的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”值后,文件将显示测试值
答案 0 :(得分:0)
您必须确保: suite =“group.cryptochange.favorites” key =“收藏夹”
您必须检查Extension是群组应用的成员
您应该检查“投射类型”是否正确
我希望我的答案很有用