'performFetchWithCompletionHandler' 是否在没有网络连接时被调用?
Is 'performFetchWithCompletionHandler' called when no internet connection?
如果设备未连接到互联网,UIApplicationDelegate
会调用 performFetchWithCompletionHandler
吗?在这种情况下,文档不清楚。
下载完成后不会调用 -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];
}
经过一些测试后,我可以声明 performFetchWithCompletionHandler
如果设备未连接到互联网,则不会调用委托方法。
在 iOS8 和 iOS9.
上测试
如果设备未连接到互联网,UIApplicationDelegate
会调用 performFetchWithCompletionHandler
吗?在这种情况下,文档不清楚。
-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];
}
经过一些测试后,我可以声明 performFetchWithCompletionHandler
如果设备未连接到互联网,则不会调用委托方法。
在 iOS8 和 iOS9.