MST

星途 面试题库

面试题:Objective-C中NSURLSession数据任务的常用回调方法及作用

在Objective-C使用NSURLSession进行网络请求时,数据任务(NSURLSessionDataTask)有几个常用的回调方法,请列举并说明它们各自的作用。
50.0万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
  • -(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
    • 作用:当任务完成时调用,无论是成功完成还是因为错误而结束。如果 errornil,表示请求成功;否则可以通过 error 获取详细的错误信息,比如网络连接失败、服务器错误等。在这里可以进行清理工作、更新UI等操作。