Контекст: я использую настраиваемое намерение, называемое TestConfiguration, для нового виджета iOS 14, который я создал, и у меня отмечены динамические параметры. Моя цель - позволить пользователю редактировать представление виджета на основе параметра, выбранного из списка, полученного из серверной части, и отражать изменения в самом виджете.
У меня есть класс 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))
}
}
Но это, похоже, тоже не сработало, поскольку оно все еще дает мне тот же ответ. Что я не понимаю / как мне это сделать?