2017-09-05 77 views
0

我目前正在嘗試製作一個URLSessionDataTask到一個URI。由於URI已重定向,因此我需要找出重定向的(最終)網址是什麼。要做到這一點,我想使用URLSessionDataDelegatewillPerformHTTPRedirection方法如何爲URLSessionDataTask分配委託?

問題是(這種方法是從它的超類繼承URLSessionDelegate):我無法找到一個URLSessionDataTask財產分配委託。

從我的理解,如果一個類(比如,class A)的委託類(比方說,class ADelegate),應該也有內部class A一個屬性,它通常與後綴名爲delegate。當我們想要實現委託的方法時,我們實例化一個委託類的實例,並將其分配給委託屬性。例如:

var instanceA = A() 
var instanceADelegate = ADelegate() 

instanceA.delegate = instanceADelegate 

我理解錯了嗎?在URLSessionDataDelegate中實現方法的正確方法是什麼,然後在URLSessionDataTask內使用它?

回答

1

的問題是:我無法找到一個URLSessionDataTask財產委託由於委託所屬的URLSession分配給

。從the docs

協議URLSessionDataDelegate 的NSURLSessionDataDelegate協議規定的 URLSession 對象的委託可以實現處理特定的數據任務的任務級別的事件,並上傳任務的方法。

(重點煤礦。)

+0

我想'willPerformHTTPRedirection'實際上是在'URLSessionTaskDelegate'。我如何將它分配給'URLSession'?我是否在'URLSession.shared'上設置了它,如果是這樣,怎麼辦? –

+0

@JoshParadroid請查閱文檔https://developer.apple.com/documentation/foundation/urlsession在該頁面中搜索術語「委託」 – matt

+0

供將來參考:委託在URLSession的構造函數中設置。 –