iOS UITableViewCell 多线程 网络+沙盒的图片加载以及第三方框架SDWebImage方式加载

本文介绍了如何在iOS应用中,使用多线程和沙盒缓存来加载UITableViewCell中的图片,以及如何利用第三方库SDWebImage简化这一过程。首先在apps.plist存储图片信息,通过App模型解析数据,设置UITableView的数据源和代理。接着讲解了如何在故事板中配置UITableView,并使用SDWebImage框架,仅需简单修改就能实现图片的高效加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.多线程网络沙盒 方式加载UITableViewCell中的图片

1.首先,在apps.plist存放待加载图片的属性信息,如:
这里写图片描述


2.新建类 App作为数据模型,用来将之前的apps.plist转换成该模型
App.h

#import <Foundation/Foundation.h>

@interface App : NSObject
/**
 * 字典里面的key和实体的属性名要一样
 */
@property (nonatomic,copy) NSString *name;//图片名
@property (nonatomic,copy) NSString *download;//下载次数
@property (nonatomic,copy) NSString *icon;//图片url

+(instancetype) appWithDict:(NSDictionary *)dict;
@end

App.m

#import "App.h"

@implementation App

+(instancetype) appWithDict:(NSDictionary *)dict
{
    App *app = [[App alloc]init];
    //把字典里面的元素变成实体对象
    [app setValuesForKeysWithDictionary:dict];
    return app;
}
@end

2.在storyboard中拖入UITableView控件,并设置其代理和数据源代理,导出到ViewController中,在ViewController.h中添加相应的协议

@interface ViewController : UIViewController
     <UITableViewDataSource,UITableViewDelegate>
@end

3.ViewController.h中,导入App.h, 并定义属性,详细如下:

#import "ViewController.h"
#import "App.h"
@interface ViewController ()
//存放所有的实体数据
@property (nonatomic,strong) NSMutableArray *apps;
//创建下载图片的队列
@property (nonatomic,strong) NSOperationQueue *queue;
@property (weak, nonatomic) IBOutlet UITableView *tableView;
//定义一个字典,缓存所有下载的图片 key:是图片的下载地址  value:具体图片
@property (nonatomic,strong) NSMutableDictionary *images;
//定义一个字典,存放所有正在下载的操作
@property (nonatomic,strong) NSMutableDictionary *downLoadOperation;
@end

4.对需要用到的成员懒加载

-(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值