使用URLSession全部的網絡訪問都是有緩存的,緩存文件自動保存在tmp文件夾中,URLSession自己實現的時候,就是少許屢次的!緩存
l 使用defaultSessionConfiguration配置創建的會話服務器
退出到首頁時,任務會被自動掛起cookie
從新進入應用時,任務會自動繼續網絡
l 使用backgroundSessionConfiguration配置創建的會話session
在退出首頁時,後臺的下載任務仍然進行中,一直到下載完成spa
從新進入首頁時,纔會觸發代理方法,拷貝文件線程
若是沒有下載完成,從新進入應用時,下載任務會自動繼續代理
l 對於一次性數據訪問,仍然可使用NSURLConnection!對象
l 1. NSURL接口
l 2. NSURLRequest
l 3. NSURLSession
l 4. NSURLSessionTask
l 5. resume啓動任務
l 若是是簡單的網絡數據GET、POST,仍然使用NSURLConnection
NSURLSession是iOS7中新的網絡接口,與NSURLConnection是並列的。當程序在前臺時,NSURLSession與NSURLConnection能夠互相替代。若是用戶強制將程序關閉,NSURLSession會被結束。
NSURLSession提供的功能:
l 經過URL將數據下載到內存
l 經過URL將數據下載到文件系統
l 將數據上傳到指定URL
l 在後臺完成上述功能
做用:用於定義和配置 NSURLSession 對象
每個NSURLSession對象均可以設置不一樣的NSURLSessionConfiguration,從而知足應用內不一樣類型的網絡請求
NSURLSessionConfiguration的三種類型:
l defaultSessionConfiguration 默認session配置,相似 NSURLConnection 的標準配置,使用硬盤來存儲緩存數據
l ephemeralSessionConfiguration 臨時session配置,與默認配置相比,這個配置不會將緩存、cookie等存在本地,只會存在內存裏,因此當程序退出時,全部的數據都會消失
l backgroundSessionConfiguration 後臺session配置,與默認配置相似,不一樣的是會在後臺開啓另外一個線程來處理網絡數據
NSURLSession 使用 NSURLSessionTask 來具體執行網絡請求的任務
NSURLSessionTask 支持網絡請求的取消、暫停和恢復,好比下載文件暫停以後再恢復就可以自動從上次的進度繼續下載。NSURLSessionTask還能獲取數據的讀取進度
NSURLSessionTask的三種類型:
l NSURLSessionDataTask 處理通常的NSData數據對象,好比經過GET或POST方式從服務器獲取JSON或XML返回等等,但不支持後臺獲取
l NSURLSessionUploadTask 用於上傳文件,支持後臺上傳
l NSURLSessionDownloadTask 用於下載文件,支持後臺下載
使用NSURLSessionConfiguration來配置 NSURLSession 對象
用NSURLSession對象來啓動一個NSURLSessionTask對象
也可使用系統全局的sharedSession單例來知足大多數的需求
注:相比較NSURLConnection的返回處理,NSURLSession提供了靈活的數據返回方式,可使用簡單的block方式來處理返回數據,也可使用更強大的delegate