面试题答案
一键面试-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
:- 作用:当接收到服务器的响应头时调用。在这里可以检查响应的状态码、响应头信息等。
completionHandler
用于告诉系统如何处理这个响应,例如是继续接收数据(.allow
)还是取消请求(.cancel
)等。
- 作用:当接收到服务器的响应头时调用。在这里可以检查响应的状态码、响应头信息等。
-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
:- 作用:当接收到服务器返回的数据时调用,每次接收到新的数据块都会调用这个方法。接收到的数据以
NSData
的形式传递,可以在这个方法里将数据累积起来进行后续处理,比如解析JSON数据等。
- 作用:当接收到服务器返回的数据时调用,每次接收到新的数据块都会调用这个方法。接收到的数据以
-(void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
:- 作用:当任务完成时调用,无论是成功完成还是因为错误而结束。如果
error
为nil
,表示请求成功;否则可以通过error
获取详细的错误信息,比如网络连接失败、服务器错误等。在这里可以进行清理工作、更新UI等操作。
- 作用:当任务完成时调用,无论是成功完成还是因为错误而结束。如果