NSUserDefault更改watchppExtension中的通知处理
我正在创建一个iwatch应用程序,只需在iphone应用程序中单击tableview时显示值。
我想获得关于共享userdefault值更改的通知。 它在watchkitapp和iphone应用程序之间共享,所以当用户对手机进行任何更改时,我必须得到通知。 我做了以下
当用户在手机上执行某些操作时
NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.app"];</br>
id object = [self.plantsArray objectAtIndex:[self.plantsTable indexPathForSelectedRow].row];</br>
[shared setObject:object forKey:@"data"];</br> [shared synchronize];
在watchkit扩展中已经注册了通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(print) name:NSUserDefaultsDidChangeNotification object:nil];
但不幸的是我没有收到任何通知,任何人都知道一些解决方案
我不认为iOS能够在应用程序和扩展程序之间distributed notifications
,但通知不会在两者之间发挥作用,而是需要找到两种方法可以监视更改。 例如文件。
由于您已经创建了group
,因此您可以在组文件夹中保留一个文件并添加扩展名filewatcher
,从app更新文件, filewatcher
将捕获更改并完成您的工作。
对于filewatcher
在这里看代码。
希望能帮助到你。
干杯。
更新
在这里找到File watcher Swift version
。 感谢@rivera
的加入。
你可以试试MMWormHole,它提供:
使用它,这将是在你的应用程序中执行通知所需的所有代码
[self.wormhole passMessageObject:@{@"buttonNumber" : @(1)} identifier:@"button"];
[self.wormhole listenForMessageWithIdentifier:@"button"
listener:^(id messageObject) {
self.numberLabel.text = [messageObject[@"buttonNumber"] stringValue];
}];
链接地址: http://www.djcxy.com/p/83029.html
上一篇: NSUserDefault change notification handling in watchppExtension