NSURLSession的使用(1),nsurlsession使用

來源:互聯網
上載者:User

NSURLSession的使用(1),nsurlsession使用

一、建立一個Session,並且對其進行初始化

  包含三種建立方式:

   1、+ (NSURLSession *)sharedSession  單例模式   2、+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration 這是常規的方式   3、+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration delegate:(nullable id <NSURLSessionDelegate>)delegate     delegateQueue:(nullable NSOperationQueue *)queue  這是常用的方式    配置方式是也是有三種:   1、+ (NSURLSessionConfiguration *)defaultSessionConfiguration 常規的配置   2、+ (NSURLSessionConfiguration *)ephemeralSessionConfiguration 臨時配置   3、+ (NSURLSessionConfiguration *)backgroundSessionConfigurationWithIdentifier: 運行在背景配置   注意:設定Configuration的值不會改變當前Session方式,只有當你重新初始化一個Session的時候生效
    NSURLSessionConfiguration *myconfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"backgroundsession"];    //請求的緩衝策略    myconfiguration.requestCachePolicy = NSURLRequestUseProtocolCachePolicy;    //資料轉送逾時,當恢複傳輸時會清零    myconfiguration.timeoutIntervalForRequest = 5;    //單條請求逾時,決定一條請求的最長生命週期    myconfiguration.timeoutIntervalForResource = 5;    //請求的服務類型    myconfiguration.networkServiceType = NSURLNetworkServiceTypeDefault;    //是否允許使用移動網路(電話網路)default is YES    myconfiguration.allowsCellularAccess = YES;    //後台模式生效,YES允許自適應系統效能調節    myconfiguration.discretionary = YES;        self.testSession = [NSURLSession sessionWithConfiguration:myconfiguration delegate:self delegateQueue:[NSOperationQueue currentQueue]];

 

二、實現代理(Session-Level)

  選用第三種初始化方式建立的Session會有三個Session層級的代理供大家使用

//session關閉回調-(void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(NSError *)error{    NSLog(@"%s,%@",__func__,error);}//認證安全問題-(void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler{    }//後台網路任務完成// 將回調 :-application:handleEventsForBackgroundURLSession:completionHandler:-(void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session{    }

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.