如何为URLSessionDataTask分配委托?
问题描述:
我目前正在尝试制作一个URLSessionDataTask
到一个URI。由于URI已重定向,因此我需要找出重定向的(最终)网址是什么。要做到这一点,我想使用URLSessionDataDelegate
的willPerformHTTPRedirection
方法如何为URLSessionDataTask分配委托?
问题是(这种方法是从它的超类继承URLSessionDelegate
):我无法找到一个URLSessionDataTask
财产分配委托。
从我的理解,如果一个类(比如,class A
)的委托类(比方说,class ADelegate
),应该也有内部class A
一个属性,它通常与后缀名为delegate
。当我们想要实现委托的方法时,我们实例化一个委托类的实例,并将其分配给委托属性。例如:
var instanceA = A()
var instanceADelegate = ADelegate()
instanceA.delegate = instanceADelegate
我理解错了吗?在URLSessionDataDelegate
中实现方法的正确方法是什么,然后在URLSessionDataTask
内使用它?
答
的问题是:我无法找到一个URLSessionDataTask财产委托由于委托所属的URLSession分配给
。从the docs:
协议URLSessionDataDelegate 的NSURLSessionDataDelegate协议规定的 URLSession 对象的委托可以实现处理特定的数据任务的任务级别的事件,并上传任务的方法。
(重点煤矿。)
我想'willPerformHTTPRedirection'实际上是在'URLSessionTaskDelegate'。我如何将它分配给'URLSession'?我是否在'URLSession.shared'上设置了它,如果是这样,怎么办? –
@JoshParadroid请查阅文档https://developer.apple.com/documentation/foundation/urlsession在该页面中搜索术语“委托” – matt
供将来参考:委托在URLSession的构造函数中设置。 –