2017-12-03 4 views
0

In meinem InterfaceController habe ich den folgenden Code:Lieferung Fehler beim Senden einer Nachricht von WatchOS App auf iOS App

@IBAction func buttonClicked() { 
     if (WCSession.default.isReachable) { 
      let message = ["Message": "Hello"] 
      WCSession.default.sendMessage(message, replyHandler: nil) 
      print ("message sent") 
     } 
    } 

In Viewcontroller habe ich den folgenden Code:

override func viewDidLoad() { 
     super.viewDidLoad() 
     if (WCSession.isSupported()) { 
      let session = WCSession.default 
      session.delegate = self 
      session.activate() 
     } 
    } 

func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) { 
     print ("message received") 
     print (message) 
    } 

Als ich ein senden Nachricht von der Watch App, bekomme ich folgende Fehlermeldung

message sent 
2017-12-03 19:33:03.903709+0530 Watch Extension[1761:74704] [WC] -[WCSession _onqueue_notifyOfMessageError:messageID:withErrorHandler:] 5BBE38F1-13C7-46E3-8E99-A874B43C6516 errorHandler: NO with WCErrorCodeDeliveryFailed 

Debug Fenster von iOS App gibt mir Foll Info:

2017-12-03 19:35:28.706212+0530 WatchTest[1770:76097] [WC] -[WCSession onqueue_handleDictionaryMessageRequest:withPairingID:]_block_invoke delegate WatchTest.ViewController does not implement delegate method 
2017-12-03 19:35:28.707992+0530 WatchTest[1770:76097] [WC] -[WCSession _onqueue_sendResponseError:identifier:dictionaryMessage:] identifier: 96B10064-F17B-4D4B-8F5C-1154984D5163 with WCErrorCodeDeliveryFailed 

Fehle ich eine Implementierung in ViewController-Klasse? Ich bin mit Xcode 9.0

Antwort

0

ich die ButtonClicked Aktionsmethode geändert folgende:

@IBAction func buttonClicked() { 
    if (WCSession.default.isReachable) { 
     let message = ["Message": "Hello"] 
     print ("message sent") 
     WCSession.default.sendMessage(message, replyHandler: { reply in 
      self.statusLabel.setText(reply["status"] as? String) 
     }, errorHandler: { error in 
      print("error: \(error)") 
     }) 
    } 
} 

Die nachrichts erfordert wahrscheinlich die Antwort und Fehlerbehandlungsroutinen definiert werden.

Verwandte Themen