如果设备未连接到互联网,UIApplicationDelegate
是否会致电performFetchWithCompletionHandler
?在这种情况下,文档并不清楚。
答案 0 :(得分:1)
经过一些测试,我可以声称如果设备未连接到互联网,则不会调用performFetchWithCompletionHandler
委托方法。
在iOS8和iOS9上测试。
答案 1 :(得分:0)
-application:performFetchWithCompletionHandler:
不会被调用。系统调用它为您的应用提供下载数据的机会。您可以根据需要进行正常的错误处理。
-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
NSURL *URL = // Your URL
[[[NSURLSession sharedSession] dataTaskWithURL:URL completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error != nil) {
// Handle Error
completionHandler(UIBackgroundFetchResultFailed);
return;
}
// Process the data
completionHandler(UIBackgroundFetchResultNewData);
}] resume];
}