AFNetworking kullanarak büyük dosyalar yüklemeye çalışıyorum ve uygulama arka planda olduğunda yüklemeyi devam ettirmeye çalışıyorum.AFnetworking kullanarak arka planda nasıl görev yüklenir
Ben sadece iyi dosya yüklemek, ancak ben bir arka plan konfigürasyonu kullanmaya çalıştığınızda - Aşağıdaki stacktrace ile uygulama çöker: İstisna: EXC_BAD_ACCESS (kod = 1, adres = 0x8000001f))
_CFStreamSetDispatchQueue
-[__NSCFBackgroundDataTask captureStream:]
__70-[__NSCFBackgroundDataTask _onqueue_needNewBodyStream:withCompletion:]_block_invoke_2
_dispatch_call_block_and_release
_dispatch_queue_drain
_dispatch_queue_invoke
_dispatch_root_queue_drain
_dispatch_worker_thread3
_pthread_wqthread
İşte bazı örnek kod:
Not: [NSURLSessionConfiguration defaultSessionConfiguration]
kullandığımda, yükleme başarılı olur, ancak uygulama arka planda olduğunda devam etmez. [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.company.appname.uploadservice"]
, uygulamanın çökmesine neden oluyor.
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:[uploadBundle.uploadUrl absoluteString] parameters:[uploadBundle getParameters] constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:uploadBundle.fileDataUrl name:uploadBundle.fileName fileName:uploadBundle.fileName mimeType:uploadBundle.mimeType error:nil];
} error:nil];
Authentication *authentication = [Authentication getInstance];
[request addValue:authentication.token forHTTPHeaderField:@"token"];
[request addValue:authentication.authorization forHTTPHeaderField:@"Authorization"];
//NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.company.appname.uploadservice"];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSProgress *progress = nil;
_currentUploadTask = [manager uploadTaskWithStreamedRequest:request progress:&progress completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"%@ %@", response, responseObject);
}
}];
'da açıklandığı gibi başarısız olursa, herhangi bir çözüm buldunuz mu? Ben aynı sorunla karşı karşıyayım. Lütfen bana yardım et. –