Как обмениваться данными с помощью Watch Connectivity при работе с Core Data

В моем iOS-приложении я использую Core Data для хранения данных и запрос на выборку для создания массиваNSManagedObjects для отображения вUITableView.

В Watch OS я проверяю,WCSession поддерживается и активен сеанс, затем отправьте приложению iOS сообщение с расширения watchOS.

Когда приложение iOS получает сообщение от watchOS, оно должно отправить массивObjects к расширению watchOS для отображения данных вWKInterfaceTable, но я не уверен, как это сделать. В конечном итоге я пытаюсь достичь этого;

Как поделиться массивомObjects с расширением watchOS?

Если пользователь добавляет / редактирует / удаляет объекты в массиве на Watch, как мы можем обновить данные на iPhone?

Кроме того, приложение iOS встроено вUITabBarController Так ли важно, с каким контроллером просмотра я общаюсь?

Смотреть ОС FavouritesInterfaceController

var session : WCSession!

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()

    //Check if session is supported and Activate
    if (WCSession.isSupported()) {
        session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()
    }
}

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)
    // Interface Objects

    //Send Message
    sendmessagetoiphone()   
}

func sendMessageToIphone() {
    if(WCSession.isSupported()){
        session.sendMessage(["b":"goodBye"], replyHandler: nil, errorHandler: nil)
    }
}

Приложение IOS: FavouritesViewController

var objects = [Objects]()

func loadData() { 

    let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
    let request = NSFetchRequest(entityName: "Objects")
    request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)]
    do {
        try
            self.objects = moc.executeFetchRequest(request) as! [Objects]
        // success ...
    } catch {
        // failure
        print("Fetch failed")
    }
 }

   func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
    //handle received message   
    let value = message["Value"] as? String
    dispatch_async(dispatch_get_main_queue()) {
        self.messageLabel.text = value
    }
    //send a reply
    replyHandler(["Value":"Hello Watch"])
   }

Ответы на вопрос(3)

Ваш ответ на вопрос