1
我想,因爲它涉及到處理數據,所以我instiated像這樣一個URL會話:URLSessionDelegate功能不會被調用
let session = URLSession(configuration: sessionConfiguration, delegate: self, delegateQueue: operationQueue);
我還設置了類是URLSessionDataDelegate:
class ViewController: UITableViewController, URLSessionDataDelegate{
最後,我實現這樣的didReceive數據功能:
func urlSession(_ session: URLSession,
dataTask: URLSessionDataTask,
didReceive data: Data){
print(data)
}
然而,我的功能永遠不會被召喚。
我跑我會是這樣的:
let session1 = session.dataTask(with: url) { (data, response, error) in
print(data!);
}
它從回調打印數據,而不是從委託。任何幫助是極大的讚賞。
編輯: 我還添加了以下內容:
func urlSession(_ session: URLSession,
dataTask: URLSessionDataTask,
didReceive response: URLResponse,
completionHandler: @escaping (URLSession.ResponseDisposition) -> Void){
completionHandler(URLSession.ResponseDisposition.allow);
}
但是,委託方法仍然沒有被調用。
可能重複的[NSURLSessionDataDelegate方法didReceiveData和別人不叫(https://stackoverflow.com/questions/27828593/nsurlsessiondatadelegate-method-didreceivedata-and-others-are-not-called) – jegadeesh
技術上是可以的,但在這種情況下,在這種情況下提供的接受解決方案在這種情況下將不起作用,因爲我發現在找到明顯答案之前,困難的方式在我的桌子上打了我幾個小時的頭。 –