亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS多線程實現多圖片下載(一)

2020-07-26 03:24:29
字體:
來源:轉載
供稿:網友

在沒有步入正文之前先給大家展示下效果圖,如果大家覺得很滿意請繼續往下閱讀全文。

大家可以看到這個界面很簡單,其實就是UITableView的布局,但是難點是在于如何從網上下載這些圖片,下載之后應如何進行存儲!

我們一步一步進行解析,先從單線程(主線程)進行多圖片下載我們布局上的文字及圖片的地址從plist文件中進行讀取

根據結構,我們自定義一個數據模型文件

DDZApp.h

#import <Foundation/Foundation.h>@interface DDZApp : NSObject//圖標@property (nonatomic,strong) NSString *icon;//名字@property (nonatomic,strong) NSString *name;//下載量@property (nonatomic,strong) NSString *download;+ (instancetype)appWithDict:(NSDictionary *)dict;@end 

DDZApp.m

#import "DDZApp.h"@implementation DDZApp+ (instancetype)appWithDict:(NSDictionary *)dict {DDZApp *app = [[self alloc] init];[app setValuesForKeysWithDictionary:dict];return app;}@end 

以下的都是視圖控制器中的代碼

ViewController.m

1.

@interface ViewController ()//所有數據@property (nonatomic,strong)NSArray *apps;//內存緩存圖片@property (nonatomic,strong)NSMutableDictionary *imgCache;@end 

第一個屬性用于存儲讀取plist文件中的內容,設置為屬性保存起來,就可以不用重復讀取

第二個屬性用于保存從網上下載下來的圖片,也是為了不用重復讀取

2.

@implementation ViewController//讀取數據- (NSArray *)apps {if (!_apps) {//從plist文件中讀取數據NSArray *dictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"apps.plist" ofType:nil]];NSMutableArray *appArray = [NSMutableArray array];for (NSDictionary *dict in dictArray) {[appArray addObject:[DDZApp appWithDict:dict]];}_apps = appArray;}return _apps;}//緩存圖片- (NSMutableDictionary *)imgCache {if (!_imgCache) {//初始化_imgCache = [NSMutableDictionary dictionary];}return _imgCache;}

這兩個方法都是為了初始化剛才的兩個屬性

3.

#pragma mark - 數據源方法- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {return self.apps.count;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *ID = @"app";UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];DDZApp *app = self.apps[indexPath.row];cell.textLabel.text = app.name;cell.detailTextLabel.text = app.download;//先從內存中取出圖片UIImage *image = self.imgCache[app.icon];if (image) {cell.imageView.image = image;}else {//內存中沒有圖片//將圖片文件數據寫入到沙盒中NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];//獲得文件名NSString *filename = [app.icon lastPathComponent];//計算出文件的全路徑NSString *file = [cachesPath stringByAppendingPathComponent:filename];//加載沙盒的文件數據NSData *data = [NSData dataWithContentsOfFile:file];//判斷沙盒中是否有圖片if (data) {//直接加載沙盒中圖片cell.imageView.image = [UIImage imageWithData:data];//存到字典(內存)中self.imgCache[app.icon] = cell.imageView.image;}else {//下載圖片data = [NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]];cell.imageView.image = [UIImage imageWithData:data];//存到內存中self.imgCache[app.icon] = cell.imageView.image;//將圖片數據寫入到沙盒中[data writeToFile:file atomically:YES];}}return cell;}

這兩個方法是UITableView必須要實現的方法

第一個是返回數據量,沒什么好說的

第二個是綁定數據

具體的流程看下圖

以上內容針對IOS多線程實現多圖片下載(一)的相關介紹,希望對大家有所幫助,下篇文章繼續給大家介紹IOS多線程實現多圖片下載(二),感興趣的朋友請持續關注。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
午夜精品一区二区三区在线播放| 欧美性感美女h网站在线观看免费| 亚洲iv一区二区三区| 性亚洲最疯狂xxxx高清| 亚洲国产福利在线| 亚洲国产小视频在线观看| 91嫩草在线视频| 国产精品视频yy9099| 日韩av在线不卡| 亚洲国产一区二区三区四区| 久久精品国产免费观看| 精品精品国产国产自在线| 成人激情视频在线| 日韩中文字幕第一页| 欧美富婆性猛交| 精品亚洲精品福利线在观看| 欧美性xxxxxxx| 国产成人精品在线观看| 日韩免费观看av| 日韩高清有码在线| 国产在线精品自拍| 久久夜色精品国产欧美乱| 亚洲a在线观看| 伊人男人综合视频网| 欧美极品在线播放| 亚洲在线视频观看| 午夜精品国产精品大乳美女| 日韩欧美aⅴ综合网站发布| 国产偷国产偷亚洲清高网站| 久久综合久久八八| 欧美性受xxxx黑人猛交| 日韩亚洲第一页| 色噜噜狠狠狠综合曰曰曰88av| 国产精品日韩欧美综合| 57pao精品| 黑人巨大精品欧美一区二区一视频| 中文精品99久久国产香蕉| 国产69久久精品成人看| 精品久久久视频| 精品视频偷偷看在线观看| 久久综合免费视频| 欧美午夜无遮挡| 中文字幕日韩电影| 欧美日韩国产在线| 国产精品视频最多的网站| 91在线免费看网站| 国产精品国产三级国产专播精品人| 久久91精品国产91久久久| 精品一区二区亚洲| 45www国产精品网站| 2019av中文字幕| 国产91精品视频在线观看| 欧美日韩国产一区在线| 亚洲人成电影在线播放| 欧美午夜宅男影院在线观看| 亚洲欧美制服另类日韩| 久久国产天堂福利天堂| 日本亚洲欧美成人| 国产一区二区动漫| 久久精品中文字幕一区| 91豆花精品一区| 欧美自拍大量在线观看| 欧美精品在线播放| 日韩在线视频观看正片免费网站| 亚洲视频在线视频| 奇门遁甲1982国语版免费观看高清| 国产精品高潮呻吟视频| 欧美综合一区第一页| 亚洲综合小说区| 精品久久久久久久大神国产| 精品日本美女福利在线观看| 久久国产一区二区三区| 亚洲第一中文字幕| 97视频在线观看视频免费视频| 亚洲性视频网址| 最近中文字幕mv在线一区二区三区四区| 成人福利网站在线观看| 亚洲精品www久久久| 欧美日韩国产一区二区| 国产成人欧美在线观看| 久久天堂电影网| 久久精品视频在线播放| 日韩在线播放视频| 日韩国产高清污视频在线观看| 成人国产精品一区二区| 国产一区二区成人| 色综合久久中文字幕综合网小说| 国产欧美一区二区三区视频| 伊人久久久久久久久久久久久| 日韩精品视频中文在线观看| 色悠悠国产精品| 亚洲欧美成人在线| 在线视频国产日韩| 亚洲人午夜精品| 国产高清视频一区三区| 一区二区三区回区在观看免费视频| 中文字幕精品视频| 国产精品女主播| 亚洲香蕉成视频在线观看| 国产男人精品视频| 国产精品视频最多的网站| 亚洲美女av网站| 亚洲一区二区三区xxx视频| 久久影视三级福利片| 亚洲香蕉在线观看| 精品国产91乱高清在线观看| 97超碰蝌蚪网人人做人人爽| 欧美性极品少妇精品网站| 亚洲小视频在线| 亚洲欧美日韩直播| 欧美极品美女视频网站在线观看免费| 亚洲国产精品高清久久久| 青青草一区二区| 日韩高清免费在线| 日韩av中文字幕在线免费观看| 欧美极品欧美精品欧美视频| 国产精品久久久久77777| 欧美日韩免费网站| 亚洲欧美一区二区三区四区| 久久久噜噜噜久噜久久| 欧美激情视频一区| 操人视频在线观看欧美| 91在线精品播放| 久久婷婷国产麻豆91天堂| 亚洲影院色在线观看免费| 日本欧美精品在线| 国产亚洲精品久久久久动| 国产精品av在线播放| 日韩精品亚洲元码| 国产精品视频一区二区三区四| 日韩美女av在线| 大伊人狠狠躁夜夜躁av一区| 成人欧美在线视频| 成人精品视频99在线观看免费| 久久91超碰青草是什么| 欧美激情第6页| 亚洲а∨天堂久久精品9966| 国产一区二区三区中文| 日韩成人在线视频网站| 狠狠躁夜夜躁人人爽天天天天97| 亚洲高清不卡av| 91亚洲国产成人久久精品网站| 亚洲大胆人体av| 久99久在线视频| 久久男人资源视频| 成年无码av片在线| 欧美日韩亚洲激情| 97免费视频在线| 精品亚洲aⅴ在线观看| 亚洲亚裔videos黑人hd| 亚洲国产精品人久久电影| 欧美激情中文字幕乱码免费| 久久影视电视剧免费网站| 亚洲www永久成人夜色| 人人爽久久涩噜噜噜网站| 午夜免费久久久久| 欧美制服第一页| 国内揄拍国内精品少妇国语| 亚洲欧美中文日韩在线| 欧美富婆性猛交| 欧美乱人伦中文字幕在线| 热re91久久精品国99热蜜臀| 日韩欧美在线观看视频| 亚洲天堂成人在线|