Я пытаюсь запустить NSURLSessionDataTask
в своем делетете приложения в фоновом режиме, но, хотя я получаю достоверные данные от обработчика завершения, приложение не запускает этот метод. Вот мой кодNSURLSessionDataTask в делетете приложения
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
NSURLSession *serverConfigure = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSessionConfiguration *serverSession = [NSURLSession sessionWithConfiguration:serverConfigure delegate:self delegateQueue:nil];
NSURLSessionDataTask *serverDownload = [serverSession dataTaskWithURL:[NSURL URLWithString:@"myurl"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSArray *downloadedData = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
[self handleData:downloadedData];
}];
[serverDownload resume];
}
Ваш обработчик завершения не будет работать в основном потоке (где вам нужно будет обновлять пользовательские интерфейсы.) –
Спасибо за ваш ответ, но у меня есть попробовал поместить метод в 'dispatch_async (dispatch_get_main_queue()', но все равно нет ответа –
Возможно, нам понадобится немного разъяснений. Когда вы говорите, что вы получаете достоверные данные от обработчика завершения, какой из двух обработчиков завершения вы говорите? И когда вы говорите: «приложение не запускает метод», о каком методе вы говорите? Ваша "handleData"? –