0
高效下載大量圖片(1500+)我正在構建一款應用程序,可根據用戶請求下載大量圖片,有時會下載1500-5000張圖片。爲此,我正在使用AFNetworking 2
。起初,我只是遍歷我的所有網址,然後爲每個網址提出請求。通過AFNetworking 2
for (NSString *url in urls) {
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
completion(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
[requestOperation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
double percentDone = (double)totalBytesRead/(double)totalBytesExpectedToRead;
progress(percentDone);
}];
[requestOperation start];
}
但是,之後我得到了約900下載/請求,我將開始得到以下錯誤:
The request timed out
我假設直接從AFNetworking
此錯誤來了。
什麼是最好和最有效的方式來做這樣的大量的下載請求沒有超時?我是否應該使用dispatch_group
將請求批爲outlined here?
或者,我應該使用一次下載一個圖像的遞歸方法,並且只有在第一個圖像完成後纔開始下一個請求?
在這種情況下,圖像存檔是不可能的。 – 2015-04-04 21:44:11
設置如此長的超時間隔是否安全? – 2015-04-04 21:44:29
@NicHubbard是的,它很安全。默認情況下,AFNetworking具有60秒的超時時間間隔。 – BioMax 2015-04-04 22:23:22