久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

iOS文件的斷點(diǎn)續(xù)傳

 求知665 2014-11-03

 

 1. 定義一個(gè)全局的AFHttpClient:包含有

    1> baseURL

    2> 請(qǐng)求

    3> 操作隊(duì)列 NSOperationQueue

 2. 由AFHTTPRequestOperation負(fù)責(zé)所有的網(wǎng)絡(luò)操作請(qǐng)求

 

0.導(dǎo)入框架準(zhǔn)備工作                                

•1. 將框架程序拖拽進(jìn)項(xiàng)目
 
•2.  添加iOS框架引用
–SystemConfiguration.framework
–MobileCoreServices.framework
 
•3.  引入
#import "AFNetworking.h"
 
//下面用于下載完后解壓

#import "SSZipArchive.h"

 

 4. 修改xxx-Prefix.pch文件

#import <MobileCoreServices/MobileCoreServices.h>

#import <SystemConfiguration/SystemConfiguration.h>

 

1.AFN的客戶端,,使用基本地址初始化,同時(shí)會(huì)實(shí)例化一個(gè)操作隊(duì)列,,以便于后續(xù)的多線程處理

 1 #import "ViewController.h"
 2 #import "AFNetworking.h"
 3 #import "SSZipArchive.h"
 4 
 5 @interface ViewController ()
 6 {
 7     // AFN的客戶端,,使用基本地址初始化,同時(shí)會(huì)實(shí)例化一個(gè)操作隊(duì)列,,以便于后續(xù)的多線程處理
 8     AFHTTPClient    *_httpClient;
 9     
10     // 下載操作
11     AFHTTPRequestOperation *_downloadOperation;
12     
13     NSOperationQueue *_queue;
14 }
15 
//下載進(jìn)度條顯示 16 @property (weak, nonatomic) IBOutlet UIProgressView *progressView; 17 18 @end 19 20 @implementation ViewController 21 /* 22 關(guān)于文件下載,,在Documents中保存的文件,一定是要應(yīng)用程序產(chǎn)生的文件或者數(shù)據(jù) 23 沒(méi)有明顯提示用戶下載到本地的文件不能保存在Docuemnts中,! 24 25 26 */ 27 28 - (void)viewDidLoad 29 { 30 [super viewDidLoad]; 31 32 NSURL *url = [NSURL URLWithString:@"http://192.168.3.251/~apple/itcast"]; 33 _httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; 34 35 _queue = [[NSOperationQueue alloc] init]; 36 }

 

2.利用AFN實(shí)現(xiàn)文件下載操作細(xì)節(jié)        

 1 #pragma mark 下載
 2 - (IBAction)download
 3 {
 4     // 1. 建立請(qǐng)求
 5     NSURLRequest *request = [_httpClient requestWithMethod:@"GET" path:@"download/Objective-C2.0.zip" parameters:nil];
 6     
 7     // 2. 操作
 8     AFHTTPRequestOperation *op = [[AFHTTPRequestOperation alloc] initWithRequest:request];
 9     
10     _downloadOperation = op;
11     
12     // 下載
13     // 指定文件保存路徑,,將文件保存在沙盒中
14     NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
15     NSString *path = [docs[0] stringByAppendingPathComponent:@"download.zip"];
16     
17     op.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
18     
19     // 設(shè)置下載進(jìn)程塊代碼
20     /*
21      bytesRead                      當(dāng)前一次讀取的字節(jié)數(shù)(100k)
22      totalBytesRead                 已經(jīng)下載的字節(jié)數(shù)(4.9M)
23      totalBytesExpectedToRead       文件總大小(5M)
24      */
25     [op setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
26         
27         // 設(shè)置進(jìn)度條的百分比
28         CGFloat precent = (CGFloat)totalBytesRead / totalBytesExpectedToRead;
29         NSLog(@"%f", precent);
30         
31         _progressView.progress = precent;
32     }];
33     
34     // 設(shè)置下載完成操作
35     [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
36         
37         // 下載完成之后,解壓縮文件
38         /*
39          參數(shù)1:要解結(jié)壓縮的文件名及路徑 path - > download.zip
40          參數(shù)2:要解壓縮到的位置,,目錄    - > document目錄
41          */
42         [SSZipArchive unzipFileAtPath:path toDestination:docs[0]];
43         
44         // 解壓縮之后,,將原始的壓縮包刪除
45         // NSFileManager專(zhuān)門(mén)用于文件管理操作,,可以刪除,復(fù)制,,移動(dòng)文件等操作
46         // 也可以檢查文件是否存在
47         [[NSFileManager defaultManager] removeItemAtPath:path error:nil];
48         
49         // 下一步可以進(jìn)行進(jìn)一步處理,,或者發(fā)送通知給用戶。
50         NSLog(@"下載成功");
51     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
52         NSLog(@"下載失敗");
53     }];
54     
55     // 啟動(dòng)下載
56     [_httpClient.operationQueue addOperation:op];
57  }

 

3.關(guān)于暫停和繼續(xù)                 

 1 - (IBAction)pauseResume:(id)sender
 2 {
 3     // 關(guān)于暫停和繼續(xù),,AFN中的數(shù)據(jù)不是線程安全的
 4     // 如果使用操作的暫停和繼續(xù),,會(huì)使得數(shù)據(jù)發(fā)生混亂
 5     // 不建議使用此功能。
 6     // 有關(guān)暫停和后臺(tái)下載的功能,,NSURLSession中會(huì)介紹,。
 7     if (_downloadOperation.isPaused) {
 8         [_downloadOperation resume];
 9     } else {
10         [_downloadOperation pause];
11     }
12 }

 

4.檢測(cè)網(wǎng)絡(luò)狀態(tài)--優(yōu)化用戶體驗(yàn)          

 1 #pragma mark 檢測(cè)網(wǎng)路狀態(tài)
 2 /*
 3  AFNetworkReachabilityStatusUnknown          = -1,  未知
 4  AFNetworkReachabilityStatusNotReachable     = 0,   未連接
 5  AFNetworkReachabilityStatusReachableViaWWAN = 1,   3G
 6  AFNetworkReachabilityStatusReachableViaWiFi = 2,   無(wú)線連接
 7  */
 8 - (IBAction)checkNetwork:(id)sender
 9 {
10     // 1. AFNetwork 是根據(jù)是否能夠連接到baseUrl來(lái)判斷網(wǎng)絡(luò)連接狀態(tài)的
11     // 提示:最好使用門(mén)戶網(wǎng)站來(lái)判斷網(wǎng)絡(luò)連接狀態(tài)。
12     NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
13     
14     AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:url];
15     _httpClient = client;
16     
17     [_httpClient setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
18 
19         // 之所以區(qū)分無(wú)線和3G主要是為了替用戶省錢(qián),,省流量
20         // 如果應(yīng)用程序占流量很大,,一定要提示用戶,或者提供專(zhuān)門(mén)的設(shè)置,,僅在無(wú)線網(wǎng)絡(luò)時(shí)使用!
21         switch (status) {
22             case AFNetworkReachabilityStatusReachableViaWiFi:
23                 NSLog(@"無(wú)線網(wǎng)絡(luò)");
24                 break;
25             case AFNetworkReachabilityStatusReachableViaWWAN:
26                 NSLog(@"3G網(wǎng)絡(luò)");
27                 break;
28             case AFNetworkReachabilityStatusNotReachable:
29                 NSLog(@"未連接");
30                 break;
31             case AFNetworkReachabilityStatusUnknown:
32                 NSLog(@"未知錯(cuò)誤");
33                 break;
34         }
35     }];
36 }

 

· AFNetworking3.0+ (最新AFN) 版本使用方法可以看我最新的日志:

iOS- 利用AFNetworking3.0+(最新AFN) - 實(shí)現(xiàn)文件斷點(diǎn)下載

                                                       

作者: 清澈Saup

出處: http://www.cnblogs.com/qingche/

本文版權(quán)歸作者和博客園共有,,歡迎轉(zhuǎn)載,但必須保留此段聲明,,且在文章頁(yè)面明顯位置給出原文連接,。

 

                            

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多