現在 Swift 2.3 に基づいている自分のアプリに Siri/Intent 拡張機能を統合したいと考えています。Xcode 8 ベータ 6 ビルドを使用しています。
アプリはコンパイルに失敗し、次のようなエラーが発生します
タイプ「IntentHandler」はプロトコル「INSendMessageIntentHandling」に準拠していません
プロトコルには、型が '(sendMessage: INSendMessageIntent, 完了: (INSendMessageIntentResponse) -> Void) -> Void' の関数 'handle(sendMessage:completion:)' が必要です
メソッド 'handle(sendMessage:completion:)' によって提供される Objective-C メソッド 'handleWithSendMessage:completion:' は、要件のセレクター ('handleSendMessage:completion:') と一致しません。
Apple のサンプル アプリである UnicornChat でさえ、同じエラーでコンパイルに失敗します。Swift 2.3 をサポートするために、 SWIFT_VERSIONフラグをYesに変更しました。
サンプルコード:
func handle(sendMessage intent: INSendMessageIntent, completion: (INSendMessageIntentResponse) -> Void) {
let userActivity = NSUserActivity(activityType: NSStringFromClass(INSendMessageIntent.self))
let response = INSendMessageIntentResponse(code: .Success, userActivity: userActivity)
completion(response)
}
これは上記のエラーで失敗します。
Swift 2.3 で Siri を機能させる方法を知っている人はいますか?