Swift 3, хотите выполнить тайм-аут при использовании URLSession для загрузки изображения с сервера

Я использую Swift 3. Я хочу добавить время ожидания для URLSession при выполнении задачи загрузки. Я использовал конфигурацию, чтобы изменить мои настройки, однако, это не работает. Код не выполнил тайм-аут... Если сервер не ответил быстро, произойдет сбой.

Вот мой код:

import Foundation
import UIKit

extension UIImageView {
    func loadImage(url: URL) -> URLSessionDownloadTask {

    let session: URLSession = {
        let configuration = URLSessionConfiguration.default
        configuration.timeoutIntervalForRequest = 70
        configuration.timeoutIntervalForResource = 70
        return URLSession(configuration: configuration, delegate: nil, delegateQueue: nil)
    }()

    let downloadTask = session.downloadTask(with: url, completionHandler: { [weak self] url, response, error in

        if error == nil, let url = url, let data = try? Data(contentsOf: url), let image = UIImage(data: data) {
            DispatchQueue.main.async {
                if let strongSelf = self {
                    strongSelf.image = image
                }
            }
        }
    })
    downloadTask.resume()
    return downloadTask
}
}

Любой комментарий приветствуется!

0 ответов

Другие вопросы по тегам