Übertragen von Daten von Apple Watch auf iPhone ist sehr ähnlich umgekehrt.
Für globale Variable sollten Sie wahrscheinlich updateApplicationContext()
von WCSession
verwenden:
let session = WCSession.default()
if session.activationState == .activated {
session.updateApplicationContext(["my_global": g_myGlobal])
}
Auf dem iPhone Sie Delegierten auf den Standard WCSession
zuweisen soll und aktivieren. Im WCSessionDelegate
, implementieren Sie die folgende Methode:
func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) {
let receivedGlobal = applicationContext["my_global"] as? TypeOfTheGlobal
}
Alternativ können Sie sendMessage(_:replyHandler:errorHandler:)
verwenden, aber dies wird iPhone erfordern erreichbar zu sein.
Im Allgemeinen würde ich Ihnen empfehlen, Zak Kautz Beratung zu folgen und über WatchConnectivity zu lesen. Dies ist die gebräuchlichste Art der Kommunikation zwischen Uhr und Telefon.
Mögliches Duplikat von [Text von iOS-Label an WatchOS-Label übergeben - swift-] (https://stackoverflow.com/questions/44673494/pass-text-from-ios-label-to-watchos-label-swift) –