IntentHandler无法读取UserDefaults,但时间轴可以

问题描述

用户更改窗口小部件的配置时,我想阅读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所说,仔细检查功能(即使您已经这样做了,我也没有注意到)。我的应用程序组仅启用了发布模式,未启用调试。应该早点注意到这一点...