дескриптор (_: завершениеHandler :) не вызывается для обработки намерения SiriKit - PullRequest
0 голосов
/ 09 октября 2018

В моем проекте у меня есть расширение WatchKit, которое, как предполагается, решает проблемы намерений SiriKit с помощью расширения намерений WatchKit.У обоих расширений намерений WatchKit и WatchKit установлена ​​целевая версия развертывания WatchOS 5.0.

Соответствующий код выглядит следующим образом:

IntentHandler.swift

...

class MyIntentHandler: NSObject, INStartWorkoutIntentHandling {
        func handle(intent: INStartWorkoutIntent, completion: @escaping (INStartWorkoutIntentResponse) -> Void) {
            let result = INStartWorkoutIntentResponse(code: .continueInApp, userActivity: nil)

            completion(result)
        }
    }

...

ExtensionDelegate.swift

...

func handle(_ intent: INIntent, completionHandler: @escaping (INStartWorkoutIntentResponse) -> Void) {
        let result = INStartWorkoutIntentResponse(code: .failure, userActivity: .none)

        completionHandler(result)
    }

...

Проблема в том, что функция handle(_:completionHandler:) в ExtensionDelegate.swift не вызывается для обработки намерения, выданного в IntentHandler.swift.Приложение Watch будет запущено без вызова этой функции.Само собой разумеется, другие функции обработки в ExtensionDelegate.swift (например, handle(_:)) в настоящий момент вызываются, как и ожидалось.

Любая идея, почему эта конкретная функция не вызывается при обработкенамерение в ExtensionDelegate.swift?

PS: эквивалентная функция application(_:handle:completionHandler:) в AppDelegate.swift вызывается при обработке намерений в цели iOS.

...