在Swift中将数据从Apple Watch传输到iPhone

codeday· 2019-11-12
本文来自 codeday ,作者 codeday
我已经尝试了多个小时,以找到一种将全局变量从Apple Watch发送到iPhone的方法.

Swift 3中,除了将数据从iPhone传输到Apple Watch之外,还有很多问题,反之亦然.

这不是重复的,因为我想将数据从Apple Watch传输到iPhone,而不是Versa.

我怎样才能做到这一点?

最佳答案
反之亦然,从Apple Watch到iPhone的数据传输非常相似.

对于全局变量,您可能应该使用WCSession的updateApplicationContext():

let session = WCSession.default()
if session.activationState == .activated {
    session.updateApplicationContext(["my_global": g_myGlobal])
}

在iPhone上,您应该将委托分配给默认的WCSession并激活它.在WCSessionDelegate中,实现以下方法:

func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {
    let receivedGlobal = applicationContext["my_global"] as? TypeOfTheGlobal
}

或者,您可以使用sendMessage(_:replyHandler:errorHandler:),但这将要求iPhone可以连接.

通常,我建议您遵循Zak Kautz的建议并阅读有关WatchConnectivity的信息.这是手表与手机之间最常见的通信方式.