0

アプリでビデオ通話を開始するためのインテント拡張機能の実行中に、次のエラー メッセージがログに記録されます。

2016-09-28 23:56:58.686343 CallIntentExtension[2442:128209] -[Swift._SwiftDeferredNSArray _dataForIntentSlotDescription:]: unrecognized selector sent to instance 0x143d29a50  
2016-09-28 23:56:58.703162 CallIntentExtension[2442:128209] <NSXPCConnection: 0x143e3b2a0> connection from pid 25: Warning: Exception caught during invocation of received message, dropping incoming message and invalidating the connection.  
Exception: -[Swift._SwiftDeferredNSArray _dataForIntentSlotDescription:]: unrecognized selector sent to instance 0x143d29a50  
-[Swift._SwiftDeferredNSArray _dataForIntentSlotDescription:]: unrecognized selector sent to instance 0x143d29a50  
(  
  0   CoreFoundation                      0x000000019471c1d8 <redacted> + 148  
  1   libobjc.A.dylib                     0x000000019315455c objc_exception_throw + 56  
  2   CoreFoundation                      0x0000000194723278 <redacted> + 0  
  3   CoreFoundation                      0x0000000194720278 <redacted> + 916  
  4   CoreFoundation                      0x000000019461a59c _CF_forwarding_prep_0 + 92  
  5   Intents                             0x00000001adde1dd0 <redacted> + 36  
  6   CallIntentExtension                 0x00000001000179fc _TTRXFdCb_dCSo7NSArray_dT__XFo_oGSaCSo24INPersonResolutionResult__dT__ + 72  
  7   CallIntentExtension                 0x000000010001748c _TFC19CallIntentExtension17CallIntentHandler15resolveContactsfT17  
resolveContacts  

拡張機能の開発を開始する前に、アプリケーションを Swift 2.3 に更新しました。Siri へのメッセージは、「AppName から ContactName へのビデオ通話を開始してください」です。 解決メソッドが呼び出されます。

func resolveContacts(forStartVideoCall intent: INStartVideoCallIntent, with completion: ([INPersonResolutionResult]) -> Void)  

成功の解決結果が完了ブロックに提供されます。

var resolutionResults = [INPersonResolutionResult]()   
let handle = INPersonHandle(value: "ContactName", type: .Unknown)   
let person = INPerson(personHandle: handle, nameComponents: nil, displayName: "ContactName", image: nil, contactIdentifier: "123", customIdentifier: nil)   
resolutionResults += [.success(with: person)]  
completion(resolutionResults)  

しかし、ログにエラー メッセージが表示された後、Siri は「申し訳ありませんが、アプリを続行する必要があります」と言います。 Perform または Handle メソッドは呼び出されません。新しいクリアアプリケーションでも同じことが起こります。プロジェクトはここにあります

何が悪いのか理解するのを手伝ってください。何かご意見は?

PS

についての情報は見つかりませんでした-[Swift._SwiftDeferredNSArray _dataForIntentSlotDescription:]:

PPS

アプリケーションを Swift 3 に変換すると、エラーはなくなりました。

4

0 に答える 0