Вынести URLSession dataTask в свою очередь
Заметил такую особенность - при использовании URLSession Data Task, данный метод сам уходит в Global queue. Но что если я хочу вынести это в собственную очередь, которую я создал? Чтобы URLSession.dataTask выполнялся в той очереди, в которой я захочу. Как это реализовать?
Ответы (1 шт):
Автор решения: Georgi
→ Ссылка
Можно только передав ему delegatequeue в ините
Пример кода на swift5.3:
class Delegate: NSObject, URLSessionDataDelegate {
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
guard let queueLabel = OperationQueue.current?.underlyingQueue?.label else { return }
print(queueLabel)
}
}
func getData() {
let dispatchQueue = DispatchQueue(label: "Queue")
let delegate = Delegate()
let operationQueue = OperationQueue()
operationQueue.underlyingQueue = dispatchQueue
let session = URLSession(configuration: .default, delegate: delegate, delegateQueue: operationQueue)
let task = session.dataTask(with: URL(string: "https://www.google.ru/")!)
task.resume()
}