NSURLSessionConfiguration对象用于初始化NSURLSession对象。当NSURLSession开启多个任务Task的时候可以用NSURLSessionConfiguration对象统一配置。
-
会话在初始化时复制它们的配置,NSURLSession有一个只读的配置属性,使得该配置对象上的变化对这个会话无效。配置在初始化时被读取一次,之后都是不会变化的。
-
从网络访问性能 到Cookie、安全性、缓存策略、自定义协议、 启动事件设置、以及用于移动设备优化的几个新属性 都是NSURLSessionConfiguration支持的。
NSURLSessionConfiguration有三个类构造函数 很好的说明了NSURLSession是为不同的用例设计的。
- defaultSessionConfiguration:返回标准默认配置,实际上与NSURLConnection的网络协议栈是一样的,具有相同的共享NSHTTPCookieStorage 共享NSURLCache和共享NSURLCredentialStorage,一般情况下我们都使用这个。
- ephemeralSessionConfiguration:返回一个预设配置,没有持久性存储的缓存,Cookie或证书。可以用来实现像"无痕浏览"功能的功能。
- backgroundSessionConfiguration:独特之处在于,它会创建一个后台会话。它甚至可以在应用程序挂起,退出,崩溃的情况下运行上传和下载任务。初始化时指定的标识符 被用于向任何可能在进程外恢复后台传输的守护进程提供上下文。
更多相关信息 可查看WWDC Session 204:"What's New with Multitasking"
代码
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
// 蜂窝网络访问
configuration.allowsCellularAccess = YES;
// 统一设置请求超时时间
configuration.timeoutIntervalForRequest = 15;
// 加载资源超时时间
configuration.timeoutIntervalForResource = 10;
网友评论