我們最近遷移從AFHTTPRequestOperation
在AFNetworking 3
使用AFURLSessionManager
NSURLSessionDownloadTas
ķ。我們的用戶可以選擇下載最多可包含約5,000個文件的項目。許多任務(NSURLSessionDownloadTask)與背景會話導致失敗使用AFNetworking
這些文件主要是PDF和MP4,大小範圍從10 KB到1 GB。作爲遷移使用NSURLSession
和AFURLSessionManager
的一部分,我們很高興能夠在應用程序進入後臺時允許下載繼續下載到系統中。但是,我們遇到的是這些下載將開始失敗的
失去了連接到後臺傳輸服務
- 或 -
「沒有這樣的文件的錯誤信息或目錄「
當用戶選擇向上下載500個文件,這可能會發生在後臺或前臺的應用程序。然後我們會收到有關任何未來下載的這些錯誤消息,直到我們終止並重新啓動應用
任何想法,如果這是一個限制的iOS和NSURLSession
背景配置,或者我們應該能夠得到它的工作?
我們AFURLSessionManager看起來像這樣:
NSURLSessionConfiguration *configuration =
[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.our.app.identifier.downloads"];
[configuration setHTTPMaximumConnectionsPerHost:5];
AFURLSessionManager *sessionManager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
[sessionManager setCompletionQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)];
而任務是這樣的:
NSURLSessionDownloadTask *downloadTask = [self.sessionManager downloadTaskWithRequest:[self requestForItem:item] progress:nil
destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) {
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
return [NSURL fileURLWithPath:[filePath stringByAppendingPathComponent:@"fileid.ext"]];
} completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) {
// check for error and notify the ui of completion
}];
我只是想爲新用戶說這是一個出色的格式化問題。希望我能更多地幫助你。 –