NSUserDefault更改watchppExtension中的通知处理

Man*_*phy 8 usergroups ios apple-watch

我正在创建一个iwatch应用程序,只是为了在iPhone手机应用程序中点击桌面视图时显示值.

我想获得有关共享用户默认值更改的通知.它是在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];
Run Code Online (Sandbox Code Playgroud)

在watchkit扩展中已经注册了通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(print) name:NSUserDefaultsDidChangeNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我没有得到任何通知,任何人都知道一些解决方案

iph*_*nic 3

我不认为 iOS 具有distributed notifications应用程序和扩展程序之间的功能,通知在两者之间不起作用,相反,您需要找到一种方法让两者都可以监视更改。例如文件。

正如您已经创建的那样group,您可以在组文件夹中保留一个文件并添加filewatcher扩展名,从应用程序更新文件,并filewatcher捕获更改,您的工作就完成了。

请参阅此处的filewatcher代码。

希望能帮助到你。

干杯。

更新

File watcher Swift version 在这里找到。感谢@rivera您的添加。