刷新今日扩展视图

Thi*_*ltV 4 xcode cocoa-touch ios ios8 ios8-today-widget

我为我的iOS App创建了今天的扩展.我的应用程序在后台获取新数据并将其保存到应用程序组中的共享数据库中.

当执行主应用程序的后台提取时,我如何制作(如果可能的话)扩展以更新它的视图?如果不可能,我怎么能做出相同的东西(比如定期更新扩展以检查共享数据库中的新数据).

sco*_*phc 12

您可以使用共享的NSUserDefaults并观察它.

在您的应用中:

更新数据库后,执行以下命令:

NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.yourcompany.sharedDefaults"];
[userDefaults setObject:[NSDate date] forKey:@"updatedDate"];
[userDefaults synchronize];
Run Code Online (Sandbox Code Playgroud)


在今日小工具中:

在viewDidLoad中添加一个观察者:

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

然后

- (void)userDefaultsDidChange:(NSNotification *)notification {
    // check updatedDate and update widget UI
}
Run Code Online (Sandbox Code Playgroud)

参考:http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/