日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > php開源 > 綜合技術(shù) > NSURLSession下載和斷點(diǎn)續(xù)傳

NSURLSession下載和斷點(diǎn)續(xù)傳

來(lái)源:程序員人生   發(fā)布時(shí)間:2015-05-19 08:36:23 閱讀次數(shù):3189次

  NSURLSession是iOS7以后新的網(wǎng)絡(luò)接口,和常常用到NSURLConnection是類似的。在程序在前臺(tái)時(shí),NSURLSession與NSURLConnection可以相互的替換。但是當(dāng)用戶在對(duì)程序進(jìn)行強(qiáng)迫關(guān)閉的時(shí)候此時(shí)NSURLSession會(huì)默許的自動(dòng)斷開。相比而言NSURLSession的優(yōu)勢(shì)主要體現(xiàn)在后臺(tái)操作時(shí)候,而且在最流行的框架AFNetworking中也對(duì)NSURLSession提供了更好的支持。

  主要提供的功能以下:

1 下載文件到內(nèi)存中

2 下載文件到路徑

3 上傳制定的文件等

案例演示:圖片下載斷點(diǎn)續(xù)傳

主要代碼:

1、定義幾個(gè)全局變量

@interface ViewController () { NSURLSessionDownloadTask * _task; NSData * _data; NSURLSession * _session; NSURLRequest * _request; UIProgressView * _pro; UIImageView * _imageView; }

2、向視圖中添加圖片進(jìn)度條

_imageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 300)]; _imageView.center=self.view.center; [self.view addSubview:_imageView]; _pro=[[UIProgressView alloc] initWithFrame:CGRectMake(_imageView.frame.origin.x, _imageView.frame.origin.y+400, 300, 40)];

3、向視圖中添加按鈕(一樣的方式添加3個(gè))

UIButton * button=[[UIButton alloc] initWithFrame:CGRectMake(50, _imageView.frame.origin.y+400+20, 50, 40)]; button.backgroundColor=[UIColor blueColor]; [button setTitle:@"開始" forState:UIControlStateNormal]; [button addTarget:self action:@selector(ddLoad) forControlEvents:UIControlEventTouchUpInside]; button.layer.borderWidth=1; button.layer.borderColor=[UIColor blueColor].CGColor; button.layer.cornerRadius=5; [self.view addSubview:button];

4、通過(guò)AFNetworkReachabilityManager網(wǎng)絡(luò)狀態(tài)監(jiān)測(cè)

- (void) _checkNet{ //開啟網(wǎng)絡(luò)狀態(tài)監(jiān)控 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { if(status==AFNetworkReachabilityStatusReachableViaWiFi){ NSLog(@"當(dāng)前是wifi"); } if(status==AFNetworkReachabilityStatusReachableViaWWAN){ NSLog(@"當(dāng)前是3G"); } if(status==AFNetworkReachabilityStatusNotReachable){ NSLog(@"當(dāng)前是沒(méi)有網(wǎng)絡(luò)"); } if(status==AFNetworkReachabilityStatusUnknown){ NSLog(@"當(dāng)前是未知網(wǎng)絡(luò)"); } }]; }

5、開始下載

- (void) ddLoad{ NSURLSessionConfiguration * config=[NSURLSessionConfiguration defaultSessionConfiguration]; _session=[NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil]; // NSURL *url=[NSURL URLWithString:@src]; _request=[NSURLRequest requestWithURL:url]; _task= [_session downloadTaskWithRequest:_request]; NSLog(@"開始加載"); [_task resume]; }

6、設(shè)置暫停和回復(fù)

- (void) pause{ //暫停 NSLog(@"暫停下載"); [_task cancelByProducingResumeData:^(NSData *resumeData) { _data=resumeData; }]; _task=nil; } - (void) resume{ //恢復(fù) NSLog(@"恢復(fù)下載"); if(!_data){ NSURL *url=[NSURL URLWithString:@src]; _request=[NSURLRequest requestWithURL:url]; _task=[_session downloadTaskWithRequest:_request]; }else{ _task=[_session downloadTaskWithResumeData:_data]; } [_task resume]; }

7、代理方法保存下載文件監(jiān)控下載進(jìn)度

#pragma mark - delegate - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location{ NSURL * url=[NSURL fileURLWithPath:@"/Users/jredu/Desktop/tt.png"]; NSFileManager * manager=[NSFileManager defaultManager]; [manager moveItemAtURL:location toURL:url error:nil]; dispatch_async(dispatch_get_main_queue(), ^{ NSData * data=[manager contentsAtPath:@"/Users/jredu/Desktop/tt.png"]; UIImage * image=[[UIImage alloc ]initWithData:data]; _imageView.image=image; UIAlertView * alert=[[UIAlertView alloc] initWithTitle:nil message:@"下載完成" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; [alert show]; }) ; } - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite{ CGFloat progress=(totalBytesWritten*1.0)/totalBytesExpectedToWrite; dispatch_async(dispatch_get_main_queue(), ^{ _pro.progress=progress; }) ; }

 

生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产一区| 国产三级在线 | 久久国产精品久久 | 天堂在线免费观看 | 婷婷久| 成人在线免费 | 国产成人精品av | 91com在线观看 | 日韩欧美在线观看 | 中文字幕国产一区 | 福利在线观看 | 色婷婷成人影院 | 欧美日韩1区2区3区 久久五月天婷婷 | 欧美日韩精品一区二区在线播放 | 91福利网| 欧美一区二区在线 | 国产精品视屏 | 日韩免费三级 | 国产黄在线观看 | 美国黄色毛片女人性生活片 | 精品国产一区二区三区性色av | 国产一区二区三区久久 | 亚洲成人福利 | 不卡中文一区 | 国产乱码一区二区三区 | 韩国日本美国免费毛片 | 中文字幕+乱码+中文乱码图片 | 欧美午夜激情视频 | 999久久国精品免费观看网站 | 欧美在线一区二区 | 一区二区不卡视频 | 欧美色亚洲 | 国产精品久久久久久久久久久久久久 | 黄色高清视频 | 午夜欧美一区二区三区在线播放 | 一二三区在线 | 欧美精品在线一区二区三区 | 国内在线一区 | 久久99999 | 欧美在线色 | 欧美一区三区三区高中清蜜桃 |