NSURLSession 使用心得
NSURLSession - 網路任務工具類
作用 :
直接使用系統方法可以實現檔案上傳和下載(Block回撥)
通過代理方法可以獲取檔案上傳和下載進度(Delegate監聽)
代理方法還可實現下載任務的斷點續傳
注意事項和使用方法 :
為了方便使用,蘋果提供了一個全域性 session (單例)
所有的 任務(Task) 都是由 session 發起
所有的任務預設是掛起的,需要 resume
要設定 Session 代理,需要自定義 Session 不能使用單例 Session
結構圖 : (便於理解,蒙圈也可跳過)
方法 :
例項化方法
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration //引數1 - configuration : 配置
delegate:(nullable id <NSURLSessionDelegate>)delegate //引數2 - delegate : 設定代理
delegateQueue:(nullable NSOperationQueue *)queue; //引數3 - queue : 代理方法執行列隊
啟動任務方法
- (void)resume; //發起任務之後一定要用此方法開啟任務
通過Request發起下載任務方法
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request;
- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLRequest *)request
completionHandler:(void (^)(NSURL * _Nullable location,
NSURLResponse * _Nullable response,
NSError * _Nullable error))completionHandler;
通過URL發起下載任務方法
- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url;
- (NSURLSessionDownloadTask *)downloadTaskWithURL:(NSURL *)url
completionHandler:(void (^)(NSURL * _Nullable location,
NSURLResponse * _Nullable response,
NSError * _Nullable error))completionHandler;
通過ResumeData發起下載任務
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData;
- (NSURLSessionDownloadTask *)downloadTaskWithResumeData:(NSData *)resumeData
completionHandler:(void (^)(NSURL * _Nullable location,
NSURLResponse * _Nullable response,
NSError * _Nullable error))completionHandler;
NSURLSessionDownloadDelegate方法 :
下載過程中呼叫
- (void)URLSession:(NSURLSession *)session //引數1 - session : 呼叫的下載任務
downloadTask:(NSURLSessionDownloadTask *)downloadTask //引數2 - downloadTask : 下載的任務資訊
didWriteData:(int64_t)bytesWritten //引數3 - bytesWritten : 本次下載的位元組
totalBytesWritten:(int64_t)totalBytesWritten //引數4 - totalBytesWritten : 已下載的總位元組
totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite; //引數5 - totalBytesExpectedToWrite : 預計要下載的總位元組
下載完成後呼叫
- (void)URLSession:(NSURLSession *)session //引數1 - session : 呼叫的下載任務
downloadTask:(NSURLSessionDownloadTask *)downloadTask //引數2 - downloadTask : 下載的任務資訊
didFinishDownloadingToURL:(NSURL *)location; //引數3 - location : 下載完成後的檔案路徑資訊
相關文章
- 使用NSURLSessionSession
- 06-NSURLSessionSession
- 深入瞭解 NSURLSessionSession
- NSURLSession和NSURLConnectionSession
- NSURLSession的基礎用法Session
- 使用NSOperation和NSURLSession封裝一個序列下載器Session封裝
- PyCharm使用心得PyCharm
- Jquery使用心得jQuery
- SQLite使用心得SQLite
- CSS使用心得CSS
- nessus使用教程心得
- ios7新特性nsurlsession初探iOSSession
- Django使用心得(二)Django
- Entity Framework使用心得Framework
- Git 命令使用心得Git
- Drupal 模組使用心得
- iOS開發-NSURLSession檔案上傳iOSSession
- eclipse的使用心得Eclipse
- svg圖示使用心得SVG
- mybatis-plus 使用心得MyBatis
- php curl的使用心得PHP
- idea使用技巧、心得1Idea
- react 與 vue 使用心得ReactVue
- Lottie-iOS使用心得iOS
- Git 使用經驗及心得Git
- [心得]git使用技巧歸納Git
- 開發只懂 AFN ?搞定 NSURLSession 才是硬道理Session
- 玩轉 iOS 開發:NSURLSession 講解 (一)iOSSession
- GitHub使用心得——倉庫建立Github
- canvas 2 image的使用小心得Canvas
- D3.js 使用心得JS
- [心得] Linux使用技巧珠璣Linux
- muduo網路庫使用心得
- 說說Golang的使用心得Golang
- Oracle Job 使用心得體會Oracle
- Hadoop - Zeppelin 使用心得Hadoop
- M$的DHTML Editor 使用心得HTML
- TextIn.com API使用心得API