gpt4 book ai didi

ios - WatchConnectivity - 使用 sendMessage

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:56:15 27 4
gpt4 key购买 nike

我正在尝试使用 Swift 中的 WatchConnectivity API 在 Apple Watch(版本 2.0.1)和我的 iPhone(运行 iOS 9.1)之间建立连接。

我关注了this tutorial并且无法实现设备之间的消息传递。

来自 Apple Watch 的消息:

    let applicationData = ["data":sampleData]

self.wcSession.sendMessage(applicationData, replyHandler: {(_: [String : AnyObject]) -> Void in
// handle reply from iPhone app here
}, errorHandler: {(error ) -> Void in
// catch any errors here
})

在我的 ViewController.swift 中:

// MARK: - WatchConnectivity Session
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {

let sample:HKQuantitySample = (message["data"] as? HKQuantitySample)!
print("Sample messaged: \(sample)")
}

func sessionReachabilityDidChange(session: WCSession) {
print("session reachability changed: \(session.reachable)")
}

Watch 应用程序和 iOS 应用程序都是前台!!我不确定缺少什么。

最佳答案

所有以字典为参数的 WCSession API 只接受 property list types 的字典。 ;这包括 sendMessage API您正在使用:

message / A dictionary of property list values that you want to send. You define the contents of the dictionary that your counterpart supports. This parameter must not be nil.

所以 HKSamples 不是 property list type这就是为什么这不起作用,尽管您说错误处理程序没有被调用,这听起来很可疑。您确定将代码更改为此不会记录任何内容吗?

self.wcSession.sendMessage(applicationData, replyHandler: {(_: [String : AnyObject]) -> Void in
// handle reply from iPhone app here
}, errorHandler: {(error ) -> Void in
print(error);
})

关于ios - WatchConnectivity - 使用 sendMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34051505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com