码迷,mamicode.com
首页 > Web开发 > 详细

NSURLSession的使用(1)

时间:2016-08-17 18:05:21      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:

一、创建一个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
{
    
}

 

NSURLSession的使用(1)

标签:

原文地址:http://www.cnblogs.com/firephoenix-wings/p/5780272.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!