GCD优化Tableview列表大图卡顿实用方法

本文介绍了一种iOS应用中图片的缓存与加载方法,包括检查本地文件是否存在,如果存在则从本地加载图片;若不存在,则从网络下载并保存到本地。整个过程使用了GCD进行异步处理,确保UI响应速度。

        NSString * filepath=xxxxx;

        if ([[NSFileManager defaultManager]fileExistsAtPath:filepath]) {

            //异步加载图片

            dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

            dispatch_async(queue, ^{

                UIImage * img=[UIImage imageWithContentsOfFile:filepath];

                dispatch_sync(dispatch_get_main_queue(), ^{

                    self.bgImageView.image=img;

                });

            });

        }else{

            [self.bgImageView sd_setImageWithURL:[NSURL URLWithString:imageUrlstr] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {

                // 判断本地图片是否存在 不存在写入本地

                NSString *typePath=[[ShareMethod appRootPath] stringByAppendingPathComponent:FangAnBrowseFolder];

                [FileFunction createFolderAtPath:typePath folderName:solationID];

                //异步保存图片

                dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);

                dispatch_async(queue, ^{

                    BOOL issuc = [UIImagePNGRepresentation(image) writeToFile:filepath atomically:YES];

                    NSLog(@"issuc==%d",issuc);

                    dispatch_sync(dispatch_get_main_queue(), ^{

                    });

                });

            }];

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值