【发布时间】:2016-10-16 16:36:02
【问题描述】:
所以我一直在环顾四周并按照所有步骤正确设置共享 UserDefaults,但我应该遗漏一些东西。
我的应用和扩展程序都激活了应用组功能。两者都使用相同的套件名称("group.TestSharedPreferences"),我是这样写的:
struct Preferences {
static let shared = UserDefaults(suiteName: "group.TestSharedPreferences")!
}
在viewDidLoad:
Preferences.shared.set(1, forKey: "INT")
阅读:
Preferences.shared.integer(forKey: "INT") // Returns 1 in Container App
Preferences.shared.integer(forKey: "INT") // Returns 0 in Today Extension
即使在设置"INT"之后使用synchronize(),扩展中检索到的值也不是容器App中保存的值。关于我可能缺少什么的任何想法?谢谢!
【问题讨论】:
-
两个目标的权利文件是否包含该应用组?
-
如果此键的值为
nil,我希望返回0。因此,这似乎表明您没有在今天的扩展代码中正确定义Preferences.shared,或者今天的扩展代码被调用之前应用程序有机会设置值。跨度> -
@LeoNatan 是的,两者都包含正确的应用组
-
@iDeC 或许可以尝试致电
synchronize()。
标签: ios swift nsuserdefaults