Apple WatchからiPhoneにStringを渡そうとしていますが、接続していないようです。ここに私のコードは次のとおりです。Apple WatchがiPhoneにデータを渡していない - Swift
ViewController.swift:
import UIKit
import WatchConnectivity
class ViewController: UIViewController, WCSessionDelegate {
@IBOutlet weak var lablel: UILabel!
var string = "Hello World"
let session = WCSession.default()
override func viewDidLoad() {
super.viewDidLoad()
session.delegate = self
session.activate()
}
func session(_ session: WCSession, didReceiveMessage message: [String : Any]) {
let msg = message["StringValueSentFromiWatch"] as! String
lablel.text = "Message : \(msg)"
print("iphone recieved message")
}
func session(_ session: WCSession,
activationDidCompleteWith activationState: WCSessionActivationState,
error: Error?) {
}
func sessionDidBecomeInactive(_ session: WCSession) {
}
func sessionDidDeactivate(_ session: WCSession) {
}
}
InterfaceController.swift:
import WatchKit
import Foundation
import WatchConnectivity
class InterfaceController: WKInterfaceController, WCSessionDelegate {
let session = WCSession.default()
override func willActivate() {
super.willActivate()
session.delegate = self
session.activate()
}
@IBAction func SendPressed() {
//Send Data to iOS
let msg = ["StringValueSentFromiWatch" : "Hello World"]
session.sendMessage(msg, replyHandler: { (replay) -> Void in
print("apple watch sent")
}) { (error) -> Void in
print("apple watch sent error")
}
}
func session(_ session: WCSession,
activationDidCompleteWith activationState: WCSessionActivationState,
error: Error?){
}
}
は、私がiPhoneに "Hello Worldの" を送信しようとしているが、私はこのプリントアウトを取得しますコンソール:
のErrorHandler:YES WCErrorCodePayloadUnsupportedTypesと
と 'apple watch sent error'です。
私はそれが送信されないことを知っていますが、私は理由を知らない。誰もがなぜこれがうまくいかないか知っていますか?
注:私はこれをシミュレータで実行していますが、これは問題ではないと確信しています。
私はこの行を保持しなければなりませんでした:msg = message ["Test"]を! String –
メッセージをソートするためにifステートメントを使用するには、msg == "App1" {を使用します。再度、感謝します! –