'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.

上测试