Context:我正在为我创建的新iOS 14小部件使用一个名为TestConfiguration的自定义意图;"动态选项";已检查。我的目标是允许用户编辑小部件视图,基于从后端检索的列表中选择的选项,并将更改反映在小部件本身上。
我有一个名为IntentHandler的类,它遵循TestConfigurationIntentHandling。在这种委托方法中
func provideAssetsOptionsCollection(for intent: TestConfigurationIntent, with completion: @escaping (INObjectCollection<TestIntentItem>?, Error?) -> Void) {
我试着在这个代理方法中调用后端,但它总是告诉我";没有为这个参数"提供任何选项;。因此,我深入研究了文档,看到了确认委托方法,并像这样实现了它:
func confirm(intent: TestConfigurationIntent, completion: @escaping (TestConfigurationIntentResponse) -> Void) {
completion(TestConfigurationIntentResponse(code: .inProgress, userActivity: nil))
backendService.fetchData() { result in
//format all the data
completion(TestConfigurationIntentResponse(code: .success, userActivity: nil))
}
}
但这似乎也不起作用,因为它仍然给了我同样的回应。我有什么不明白/我该怎么做?
确保在iOS 14.0设备上测试时,Intent Handler的目标版本也设置为iOS 14.0,而不是iOS 14.1。