使用SharedData在iPhone和Watch之间通信更新

我有一个共享的核心数据支持我的iPhone应用程序和WatchKit扩展。 他们都独立运作,但我担心并发使用。

在扩展中,我有一个具有数据数组的UITableView 。 现在它只是在-awakeWithContext从共享核心数据中-awakeWithContext

当创build/更新/删除logging时,我希望在应用程序和扩展之间进行某种通信,以便可以立即(而不是下一个对Core Data的查询)复制。

这个问题, 如何将数据从iphone发送到watchkit在swift中 ,进入iPhone有一个处理器,当手表发生了什么事情,但我更关心它到另一种方式。 现在我所能想到的就是经常查询核心数据来处理它。

一个非常常见的解决scheme,唯一的方法之一是使用MMWormhole 。

MMWormhole使用CFNotificationCenter在整个应用程序和扩展之间即时沟通变化,通过共享应用程序组传递信息。

从MMWormhole GitHub自述文件中传递数据的示例 :

 // Sender (Watch Extension) [self.wormhole passMessageObject:@{@"buttonNumber" : @(1)} identifier:@"button"]; // Receiver (Phone) [self.wormhole listenForMessageWithIdentifier:@"button" listener:^(id messageObject) { self.numberLabel.text = [messageObject[@"buttonNumber"] stringValue]; }]; 

有不同的方法。

  1. 你可以使用MMWormhole
  2. 如果您不喜欢使用第三方库,则可以直接使用Darwin通知。 一个很好的教程已经在stackoverflow上。