问题描述
当用户更改窗口小部件的配置时,我想阅读UserDefaults,因此我创建了一个应用程序组并将功能添加到我的主应用程序,窗口小部件扩展和Intent扩展中。
我可以在我的应用程序和小部件扩展之间很好地读写,但是UserDefaults总是在IntentHandler.swift中返回nil
,这可能是什么原因造成的?
// called from TimelineProvider
func example() -> String {
let sharedDefaults = UserDefaults.init(suiteName: "group.myname")
let value = sharedDefaults!.value(forKey: "myKey") as! String
// value == “Hi this works!”
}
但是当我从IntentHandler调用example()
时,值是nil
。 (崩溃)
解决方法
正如EmilioPelaez所说,仔细检查功能(即使您已经这样做了,我也没有注意到)。我的应用程序组仅启用了发布模式,未启用调试。应该早点注意到这一点...