【问题标题】:Can we set a custom delegate object for NSURLSessionTaskDelegate我们可以为 NSURLSessionTaskDelegate 设置一个自定义委托对象吗
【发布时间】:2014-06-17 18:31:28
【问题描述】:

在 NSURLSession 中,我们通过

等方法将任务添加到会话中
  • dataTaskWithRequest:
  • dataTaskWithRequest:completionHandler:

据我了解,如果我们使用没有completionHandler 的或者使用nil 作为completionHandler 的,self 将被自动用作委托,我们可以期待委托方法被调用。我理解正确吗?

是否可以为每个任务指定不同的委托(除了 self )?

我检查了 sessionWithConfiguration:delegate:delegateQueue,我认为委托是一个 NSURLSessionDelegate。

【问题讨论】:

  • 经过更多调查,似乎 sessionWithConfiguration:delegate:delegateQueue 是为所有协议设置委托的方式,包括 NSURLSessionDelegate、NSURLSessionTaskDelegate、NSURLSessionDownloadDelegate 和 NSURLSessionDataDelegate

标签: nsurlsession


【解决方案1】:

回答我自己的问题。我们实际上可以使用 sessionWithConfiguration:delegate:delegateQueue 来设置委托。根据apple's URL Loading System Programming Guide

如果您需要在非默认情况下处理身份验证或缓存 方式,您必须提供符合会话的委托 委托协议,一个或多个任务委托协议,或一些 这些协议的组合。此委托有多种用途

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多