2017-11-09 26 views
0

Apple Watch에서 데이터를 빠르게로드하는 방법은 무엇입니까? userDefaults는 watchOS 2 이후 작동하지 않으므로 WCSessionDelegate 만 사용할 수 있습니다. 맞습니까?Apple Watch Kit 시작시 데이터로드

지금, 시계 앱의 시작에 그때 아이폰 애플 리케이션에 내가

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

에서 일부 데이터를 다시 보내 그리고 마지막으로 func session(_ session: WCSession, didReceiveMessage message: [String : Any])에 시계 응용 프로그램에 수신 wcSession?.sendMessage(someThing, replyHandler: someFunc, errorHandler: otherFunc) 전화,하지만 3 초처럼합니다.

시작시 데이터를 얻는 더 좋은 방법은 무엇입니까?

답변

0

새 메시지를 시작하는 대신 회신 핸들러 함수를 사용해 볼 수 있습니다. 더 빨리 작동해야합니다.

시계에서 호출이 :

func sendRequest() { 
    if session.activationState == .activated && session.isReachable { 
     session.sendMessage(["Watch Message" : "Request"], replyHandler: { (reply) in 

      // Handle reply here 

     }, errorHandler: { (error) in 

      print("***** Error Did Occur: \(error) *****") 
     }) 
    } 
} 

처리하고 전화에 응답 :

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

    if let messageFromWatch = message["Watch Message"] { 
     let messageData = messageFromWatch as! String 

     // Message From Watch to Activate Watch Connectivity Session 
     if messageData == "Request" { 
      replyHandler(["Response" : data]) 
     } 
    } 
}