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

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

1.首先,在apps.plist存放待加载图片的属性信息,如:
iOS UITableViewCell 多线程 网络+沙盒的图片加载以及第三方框架SDWebImage方式加载_第1张图片


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

#import 

@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.对需要用到的成员懒加载

你可能感兴趣的:(iOS,ios,uitableviewcell,多线程,SDWebImage,沙盒缓存图片)