缺省會話模式(default):工作模式類似於原來的nsurlconnection,使用的是基於磁碟快取的持久化策略,使用使用者keychain中儲存的證書進行認證授權。
瞬時會話模式(ephemeral):該模式不使用磁碟儲存任何資料。所有和會話相關的caches,證書,cookies等都被儲存在ram中,因此當程式使會話無效,這些快取的資料就會被自動清空。
+ (nsurlsessionconfiguration *)defaultsessionconfiguration;
+ (nsurlsessionconfiguration *)ephemeralsessionconfiguration;
+ (nsurlsessionconfiguration *)backgroundsessionconfigurationwithidentifier:(nsstring *)identifier;
在backgroundsessionconfiguration:方法中的identifier引數指定了會話的id,用於標記後台的session。
@property bool allowscellularaccess;
@property (getter=isdiscretionary) bool discretionary;
allowscellularaccess屬性指定是否允許使用蜂窩連線,discretionary屬性為yes時表示當程式在後台運作時由系統自己選擇最佳的網路連線配置,該屬性可以節省通過蜂窩連線的頻寬。在使用後台傳輸資料的時候,建議使用discretionary屬性,而不是allowscellularaccess屬性,因為它會把wifi和電源可用性考慮在內。
補充:這個標誌允許系統為分配任務進行效能優化。這意味著只有當裝置有足夠電量時,裝置才通過wifi進行資料傳輸。如果電量低,或者只僅有乙個蜂窩連線,傳輸任務是不會執行的。後台傳輸總是在discretionary模式下執行。
使用靜態的sharedsession方法,該類使用共享的會話,該會話使用全域性的cache,cookie和證書。
通過sessionwithconfiguration:方法建立物件,也就是建立對應配置的會話,與nsurlsessionconfiguration合作使用。
通過sessionwithconfiguration:delegate:delegatequeue方法建立物件,後兩種方式可以建立乙個新會話並定製其會話型別。
該方式中指定了session的委託和委託所處的佇列。當不再需要連線時,可以呼叫session的invalidateandcancel直接關閉,或者呼叫finishtasksandinvalidate等待當前task結束後關閉。這時delegate會收到urlsession:didbecomeinvalidwitherror:這個事件。delegate收到這個事件之後會被解引用。
注意:ios9新出類 nsurlsessionstreamtask建立物件很特殊,在nsurlsession中
/*nsurlsessiondatatask/
-(nsurlsessiondatatask *)datataskwithrequest:(nsurlrequest *)request;
-(nsurlsessiondatatask *)datataskwithurl:(nsurl *)url;
/*帶有結束block/
-(nsurlsessiondatatask *)datataskwithrequest:(nsurlrequest *)request completionhandler:(void (^)())completionhandler;
-(nsurlsessiondatatask *)datataskwithurl:(nsurl *)url completionhandler:(void (^)())completionhandler;
/*nsurlsessionuploadtask/
-(nsurlsessionuploadtask *)uploadtaskwithrequest:(nsurlrequest *)request fromfile:(nsurl *)fileurl;
-(nsurlsessionuploadtask *)uploadtaskwithrequest:(nsurlrequest *)request fromdata:(nsdata *)bodydata;
-(nsurlsessionuploadtask *)uploadtaskwithstreamedrequest:(nsurlrequest *)request;
/*帶有結束block/
-(nsurlsessionuploadtask *)uploadtaskwithrequest:(nsurlrequest *)request fromfile:(nsurl *)fileurl completionhandler:(void (^)())completionhandler;
-(nsurlsessionuploadtask *)uploadtaskwithrequest:(nsurlrequest *)request fromdata:(nullable nsdata *)bodydata completionhandler:(void (^)())completionhandler;
-/*nsurlsessiondownloadtask/
-(nsurlsessiondownloadtask *)downloadtaskwithrequest:(nsurlrequest *)request;
-(nsurlsessiondownloadtask *)downloadtaskwithurl:(nsurl *)url;
-(nsurlsessiondownloadtask *)downloadtaskwithresumedata:(nsdata *)resumedata;
/*帶有結束block/
-(nsurlsessiondownloadtask *)downloadtaskwithrequest:(nsurlrequest *)request completionhandler:(void (^)())completionhandler;
-(nsurlsessiondownloadtask *)downloadtaskwithurl:(nsurl *)url completionhandler:(void (^)())completionhandler;
-(nsurlsessiondownloadtask *)downloadtaskwithresumedata:(nsdata *)resumedata completionhandler:(void (^)())completionhandler;
urlsession簡單使用詳細介紹: IOS9新特性慢慢整理
1.首字母不帶下滑線的修飾類名 eg.nullable 2.首字母帶乙個下劃線,則首字母大寫,修飾物件 eg.nullable 3.首字母帶兩個下劃線,則首字母小寫,修飾物件 eg.nullable 4.大多數一般只有第一種 作用 表示可以為空 nullable書寫規範 方式一 property n...
swift之URLSession的使用
urlsession是乙個可以響應傳送或者接受http請求的關鍵類,可以通過urlsessionconfiguration類新建urlsession例項。有以下三種方式 urlsessionconfiguration urlsessionconfiguration可以配置會話 session 屬性像...
Git慢慢整理吧,平時用到乙個整理乙個
1.檢視未提交的 git status 2.提交 git add git commit m 提交的注釋資訊,比如新增登入 git push orign master 如果你當前在分支,那git push orign v1.0.1,v1.0.0是分支名 3.將當前修改放置臨時區域 git stash,...