我有一个共享核心数据支持我的iPhone应用程序和WatchKit扩展。它们都能独立运作,但我担心并发使用。
在扩展程序中,我有一个UITableView
,它有一个数据数组。现在它只是在-awakeWithContext
期间从共享核心数据中获取该数组。
我想在创建/更新/删除记录时在应用程序和扩展程序之间进行某种通信,以便可以立即在另一端复制它(而不是在下一次查询核心数据时)。
这个问题How to send data from iphone to watchkit in swift进入了iPhone,它有一个处理程序,用于Watch中发生某些事情的时候,但是我更关注它的另一种方式。现在我能想到的就是经常查询核心数据来处理它。
答案 0 :(得分:3)
一种非常常见的解决方案,其中一种方法是使用MMWormhole。
MMWormhole使用CFNotificationCenter在应用程序和扩展程序之间即时通信更改,并通过共享应用程序组传递信息。
传递数据的示例// 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 :(得分:1)
有不同的方式。