Cómo compartir datos usando Watch Connectivity cuando se trabaja con Core Data

En mi aplicación iOS, uso Core Data para almacenar datos y una solicitud de búsqueda para crear una matriz deNSManagedObjects para mostrar en unUITableView.

En Watch OS compruebo siWCSession es compatible y activa una sesión, luego envía un mensaje a la aplicación iOS desde la extensión watchOS.

Cuando la aplicación iOS recibe el mensaje de watchOS, debe enviar la matriz deObjects a la extensión watchOS para mostrar los datos en elWKInterfaceTable, pero no estoy seguro de cómo hacer esto. En última instancia, lo que estoy tratando de lograr es;

Cómo compartir la variedad deObjects con la extensión watchOS?

Si el usuario agrega / edita / elimina objetos en la matriz del reloj, ¿cómo podemos actualizar los datos en el iPhone?

Además, la aplicación iOS está incrustada dentro de unUITabBarController Entonces, ¿importa con qué controlador de vista me comunico?

Vea los favoritos de OSInterfaceController

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)
    }
}

Aplicación 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"])
   }

Respuestas a la pregunta(3)

Su respuesta a la pregunta