2015-12-09 3 views
0

Будет ли UIApplicationDelegate позвонить performFetchWithCompletionHandler, если устройство не подключено к Интернету? В этом случае документация не ясна.Является ли 'performFetchWithCompletionHandler' вызванным, когда нет подключения к Интернету?

+0

'performFetchWithCompletionHandler' вызывается системой, чтобы дать вашему приложению некоторое время обработки, чтобы обновить себя. Это не влияет на загрузку. Вы не обращаетесь к приложению '- (void): (UIApplication *) application handleEventsForBackgroundURLSession: (NSString *) Идентификатор завершенияHandler: (void (^)()) completeHandler'? – ajmccall

ответ

0

После некоторых тестов я могу утверждать, что метод performFetchWithCompletionHandler делегата не вызывается, если устройство не подключено к Интернету. Протестировано на iOS8 и iOS9.

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]; 
} 
Смежные вопросы