怎么在iOS中利用多线程实现多图下载功能

  介绍

这篇文章将为大家详细讲解有关怎么在iOS中利用多线程实现多图下载功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

一。模型文件代码如下

//, XMGAPP.h    ,   # import  & lt;基?Foundation.h>,   ,   @interface  XMGAPP : NSObject    ,/* *,APP的名称,*/,   @property (原子,,强烈),NSString  *名字,,/* *,应用的图片的url地址,*/,   @property (原子,,强烈),NSString  *图标,,/* *,应用的下载量,*/,   @property (原子,,强烈),NSString  *下载,,   ,   + (instancetype) appWithDict:(NSDictionary  *) dict;,   @end //, XMGAPP.m    ,   # import “XMGAPP.h",   ,   @implementation  XMGAPP    ,   + (instancetype) appWithDict:(NSDictionary  *) dict    {,   XMGAPP 才能;* appM =, [[XMGAPP  alloc] init];,//KVC 才能;   ,,(appM  setValuesForKeysWithDictionary: dict类型),,   ,,   appM; return 才能;   },   @end

控制器。m代码如下:

//, ViewController.m    ,   # import “ViewController.h",   # import “XMGAPP.h",   ,   @interface  ViewController  (),/* *,tableView的数据源,*/,   @property (原子,,强烈),NSArray  *应用;,/* *,内存缓存,*/,   @property (原子,,强烈),NSMutableDictionary  *图像;,/* *,队列,*/,   @property (原子,,强烈),NSOperationQueue  *队列;,/* *,操作缓存,*/,   @property (原子,,强烈),NSMutableDictionary  *操作,,   @end    ,   @implementation  ViewController    ,   # pragma  mark  - - - - - - - - - - - - - - - - - - - - - - -,   # pragma  mark  lazy  loading    ——(NSOperationQueue  *) queue    {,   if 才能;(_queue ==, nil), {,   ,,,_queue =, [[NSOperationQueue  alloc] init];,   ,,,//设置最大并发数,   ,,,_queue.maxConcurrentOperationCount =, 5,,   ,,},   _queue; return 才能;   },   ——(NSMutableDictionary  *) images    {,   if 才能;(_images ==, nil), {,   ,,,_images =, (NSMutableDictionary 字典),,   ,,},   _images; return 才能;   },   ——(NSArray  *) apps    {,   if 才能;(_apps ==, nil), {,   ,,,,   ,,,//字典数组,   ,,,NSArray  * arrayM =, (NSArray  arrayWithContentsOfFile: [[NSBundle  mainBundle] pathForResource: @" apps.plist",减低:nil]];,   ,,,,   ,,,//字典数组——祝辞模型数组,   ,,,NSMutableArray  * arrM =, (NSMutableArray 数组),,   ,,,for  (NSDictionary  * dict  arrayM拷贝),{,   ,,,,,(arrM  addObject: [XMGAPP  appWithDict: dict]];,   ,,,},   ,,,_apps =, arrM;,   ,,},   _apps; return 才能;   },   ,   ——(NSMutableDictionary  *) operations    {,   if 才能;(_operations ==, nil), {,   ,,,_operations =, (NSMutableDictionary 字典),,   ,,},   _operation; return 才能;   },   ,   # pragma  mark  - - - - - - - - - - - - - - - - - - - - - - -,   # pragma  mark  UITableViewDatasource    ——(NSInteger) numberOfSectionsInTableView:(UITableView  *) tableView    {,   ,,return  1;   },   ,   ——(NSInteger) tableView: (UITableView  *) tableView  numberOfRowsInSection:也(NSInteger) section    {,   self.apps.count; return 才能;   },   ,   ——(UITableViewCell  *) tableView: (UITableView  *) tableView  cellForRowAtIndexPath: indexPath  (NSIndexPath  *);   {,   static 才能;NSString  * ID =, @" app",,   ,,//1 .创才能建cell    UITableViewCell 才能;* cell =, (tableView  dequeueReusableCellWithIdentifier: ID),,   ,,//2。才能设置单元格的数据,//2.1,才能拿到该行细胞对应的数据,   XMGAPP 才能;* appM =, self.apps (indexpath。row),,   ,,//2.2,才能设置标题,   时间=cell.textLabel.text 才能;appM.name;,   ,,//2.3,才能设置子标题,   时间=cell.detailTextLabel.text 才能;appM.download;,   ,,//2.4,才能设置图标,   ,,//先才能去查看内存缓存中该图片时候已经存在,如果存在那么久直接拿来用,否则去检查磁盘缓存,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在iOS中利用多线程实现多图下载功能