在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/iOS/ Sdwebimage異步下載多張圖片

Sdwebimage異步下載多張圖片

如何用sdwebimage下載多張圖片,并在全部下載完后在主線程拿到所有圖片并進(jìn)行Ui更新呢?

回答
編輯回答
冷咖啡

我在使用這個方式的時候,發(fā)現(xiàn)圖片少的時候是沒有問題的,但是當(dāng)圖片量多的時候,會出現(xiàn)for循環(huán)的時候,只在imageView sd_ 這里斷點停留,但是不進(jìn)入completed里面,而且在循環(huán)到7-8次的時候,就不在循環(huán),界面也一直顯示我初始設(shè)置的SVPugress的東西,不進(jìn)入回到主線的部分,我查找了相關(guān)的帖子發(fā)現(xiàn)可能是超過的SDWebImage的緩存值,圖片大概是3500*1200的樣子,然后我試著去修復(fù),改用UIImageView+ AFNetworking 來做下載圖片,但是遇到了XPC問題 XPC connection interrupted 不知道該怎么去解決,找到的相關(guān)帖子寫的內(nèi)容只是將界面Nav pop跳轉(zhuǎn)的情況,而不是這里的問題 我該怎么解決呢? 能否提供一些思路

2018年3月16日 19:28
編輯回答
替身

用GCD

dispatch_group_t group = dispatch_group_create();
// 有多張圖片URL的數(shù)組
NSArray *imageURLArr = @[@"url",@"url",@"url"];
for (NSString *imageUrlStr in imageURLArr) {
    dispatch_group_enter(group);
    // 需要加載圖片的控件(UIImageView, UIButton等)
    UIImageView *imageView = [UIImageView new];
    [imageView sd_setImageWithURL:[NSURL URLWithString:imageUrlStr] completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
        if (error) {
            // 加載失敗
        } else {
            // 加載成功
        }
        dispatch_group_leave(group);
    }];
}
// 下載圖片完成后, 回到主線
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    // 刷新UI
});
2017年11月12日 14:05