¿Cómo optimizar la descarga de imágenes usando SDWebImage en iOS Share Extension?

así es como descargo imágenes usando SDWebImage en Share Extension:

importar UIKit

extension UIImageView {
private var storage: Storageable {
    Assembler.shared.resolve(Storageable.self)!
}

private var loginService: LoginService {
    Assembler.shared.resolve(LoginService.self)!
}

private var loginCoordinator: LoginCoordinator {
    Assembler.shared.resolve(LoginCoordinator.self)!
}

private var imageDownloader: ImageDownloaderable {
    Assembler.shared.resolve(ImageDownloaderable.self)!
}

// MARK: - Internal

func setImage(with url: URL, grayScale: Bool = false, minimize: Bool = false) {
    downloadImage(with: url) { [weak self] image in
        let minimizedImage = minimize ? image : image
        self?.image = grayScale ? minimizedImage?.grayScale : minimizedImage
    }
}

func downloadImage(with url: URL, completion: @escaping ImageHandler) {
    if storage.bearerToken != nil {
        imageDownloader.setAuthorization(withToken: storage.bearerToken)
        sd_setImage(with: url, placeholderImage: nil,
                    options: [.allowInvalidSSLCertificates, .avoidAutoSetImage]) { image, _, _, _ in
            completion(image)
        }
    } else {
        loginService.authorizeToken(withRefreshToken: storage.refreshToken ?? "") { [weak self] response, _ in
            self?.loginCoordinator.saveCredentials(with: response)
            self?.imageDownloader.setAuthorization(withToken: self?.storage.bearerToken)
            self?.sd_setImage(with: url, placeholderImage: nil,
                              options: [.allowInvalidSSLCertificates, .avoidAutoSetImage]) { image, _, _, _ in
                completion(image)
            }
        }
    }
}
}

Simplemente se ve así:

ingrese la descripción de la imagen aquí

pero cuando me desplazo por UITableView y cargo más imágenes (tengo ~40 celdas), la aplicación se bloquea debido a un problema de memoria, excedió el límite de 120 mb:

ingrese la descripción de la imagen aquí

Pero cuando desactivo la carga de imágenes desde la URL, se ve así y todo está bien, nada falla, puedo desplazarme hacia arriba y hacia abajo millones de veces. No pasa nada.

ingrese la descripción de la imagen aquí

¿Cómo puedo optimizarlo para usar imágenes en la extensión compartida? ¿Es posible aquí?

Answer