苹果提供的网络类有NSURLConnection和NSURLSession,一个是现在苹果不推荐用的,就是老的.我分别看了他们两个的头文件,发现,后者的功能超出前者大半.
在此记录下NSURLSession的一些情况.
初始化方法:
似乎不是用alloc init方法初始化的,用的是类方法
“`
- (NSURLSession *)sharedSession;
- (NSURLSession )sessionWithConfiguration:(NSURLSessionConfiguration )configuration;
(NSURLSession )sessionWithConfiguration:(NSURLSessionConfiguration )configuration delegate:(nullable id )delegate delegateQueue:(nullable
NSOperationQueue *)queue; “` 我并没有看官方文档,因为都是英文的..
不过显而易见的,第一个是提供一个公共的默认的网络接口对象.
23都要求提供一个NSURLSessionConfiguration我们进入头文件.
可以看到它提供网络设置的这么一个东西,里面可以马上明白的是identifier(用来标示自己一个字符串)
requestCachePolicy(一个专门的枚举,缓存策略timeoutIntervalForRequest timeoutIntervalForResource
前者是packet之间请求时间。如果希望限制整体超时时间,使用后者timeoutIntervalForResourceHTTPAdditionalHeaders
一个字典,可以设置公共的http头字段,比如说可接受的MIME类型,等等.
这里有个网页有比较详细的解答NSURLSession的介绍和说明(NSURLSession )sessionWithConfiguration:(NSURLSessionConfiguration )configuration delegate:(nullable id )delegate delegateQueue:(nullable
NSOperationQueue *)queue;
还要求要一个代理,是的,NSURLSession的实现需要用到代理,每当接受到数据的时候都会调用代理方法.把某个类遵守这个协议,然后选择性的实现它.
最后一个参数是一个NSOperationQueue,所有网络操作都会放到这个队列中.包括代理方法的执行.- 列表内容
所以我们看到,NSOperationQueue