我正在iOS 8上使用新的Today Extension。在设备上进行调试似乎非常困难,结果不一致,所以我大部分时间都在使用模拟器。
我正在构建的扩展是一个非常简单的扩展,每天只显示不同的图像,流程实际上非常简单:
根据Apple的参考文档,每次我们使用常量NCUpdateResultNewData调用完成块时,窗口小部件的快照应该更新到当前视图,但是,这不会一直有效,有时iOS似乎使用较旧的快照
代码很简单,这里是widgetPerformUpdateWithCompletionHandler代码:
-(void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
__weak TodayViewController *weakSelf = self;
NSURL *URL = [NSURL URLWithString:@"http://www.muratekim.com/wp-content/uploads/apple-logo-small.png"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:
^(NSData *data, NSURLResponse *response, NSError *error) {
if (!error) {
UIImage *image = [UIImage imageWithData:data];
weakSelf.imageView.image = image;
weakSelf.img = image;
completionHandler(NCUpdateResultNewData);
}
else {
completionHandler(NCUpdateResultFailed);
}
}];
[task resume];
}
提前致谢! 泽