没有互联网连接时调用’performFetchWithCompletionHandler’吗?
如果设备未连接到互联网, UIApplicationDelegate
是否会调用performFetchWithCompletionHandler
? 在这种情况下,文档不清楚。
经过一些测试后,我可以声称如果设备未连接到互联网,则不会调用performFetchWithCompletionHandler
委托方法。 在iOS8和iOS9上测试过。
-application:performFetchWithCompletionHandler:
下载完成后不会调用。 它被系统调用,为您的应用程序提供下载数据的机会。 您可以根据需要进行正常的error handling。
-(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]; }