내 응용 프로그램 대리인에서 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];
}
완료 처리기가 UI 업데이트를 수행해야하는 주 스레드에서 실행되지 않습니다. –
감사합니다. 귀하의 회신에 대한하지만 메소드를 'dispatch_async (dispatch_get_main_queue()'에 배치했지만 여전히 응답이 없습니다. –
) 약간의 설명이 필요할 수 있습니다. 완료 핸들러에서 유효한 데이터를 가져 오는 경우 두 완료 핸들러 중 어느 것을 말하고 있습니까? 그리고 "앱이 그 방법을 해고하지 않는다"고 말할 때, 어떤 방법을 말하는 겁니까? 귀하의 "handleData"? –