使用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]; }];
有不同的方法。
- 你可以使用MMWormhole
- 如果您不喜欢使用第三方库,则可以直接使用Darwin通知。 一个很好的教程已经在stackoverflow上。