看板 MacDev 關於我們 聯絡資訊
※ 引述《kiii210 (Johnny.T)》之銘言: : 不是三個圖檔"同步"下載, 而是下載完1換下載2, : 下載完2換下載3, 結束. : (類似下載工具只限制一次只能下載一個檔案, 而排隊中的檔案有3個, : 所以一次只能下載一個, 下載完自動下載另一個) : [SDWebImageDownloader.sharedDownloader : downloadImageWithURL:img_largeURL options:0 : progress:^(NSUInteger receivedSize, long long expectedSize) { : /*Block 1 */ : } : completed:^(UIImage *image, NSData *data , NSError *error, BOOL finished) { : /* Block 2 */ : if ( finished && image ) { : }}]; 看起來可以遞迴一下 ... NSMutableArray *URLs ... - (void)consumeURLs { NSURL *URL = [URLs lastObject]; [URLs removeLasObject]; if (!URL) return; // All done id dlr = [SDWebImageDownloader sharedDownloader]; [dlr downloadImageWithURL:URL options:0 progress:^(NSUInteger rsz, long long esz) { // Whatever } completed:^(UIImage *i, NSData *d , NSError *e, BOOL f) { [self consumeURLs]; }]; } 以上是直接打字的, 可能有小錯誤不過大致上概念是這樣 至於發生錯誤的時候要怎麼處理(要重傳還是怎樣)就看你自己了 -- "問おう、貴方が私のマスターか?" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146 ※ 編輯: uranusjr 來自: 114.32.81.146 (02/14 06:00)
Blueshiva:我怎麼直接想到的是丟到GCD中去排隊... 02/14 11:47
uranusjr:啊對耶 GCD 就有 serial 了... 02/14 12:17
kiii210:昨天我也有想到...不過不會用..是dispatch_queue嗎? 02/14 12:20
johnlinvc:GCD 可能不太行。因為async 的function 會立刻return 02/15 12:45
ksksBangBang:NSOperationQueue? 02/16 06:45