iOS批量图片下载完成回调

iOS batch Images download finish and callback

我有一个批量图片 url,我想在所有图片下载完成后回调一个自定义块。

而我用的是SDWebImage,下载图片功能是async的,怎么办?

您可以使用 dispatch_group_t 来执行此操作:

dispatch_group_t group =  dispatch_group_create();
for (NSURL *url in urls) {
    dispatch_group_enter(group);
    [[[SDWebImageManager sharedManager] imageDownloader] downloadImageWithURL:url options:SDWebImageDownloaderLowPriority progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
        if (image) {
            // download success
        }
        NSLog(@"download...");
        dispatch_group_leave(group);
    }];
}

dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    NSLog(@"all download...");
});