Comment charger une image de manière asynchrone ? - UIKit + Swift + closures
Résumé: Cette version permet de charger une image de manière asynchrone depuis une URL avec Swift et des closures.
Description
L’implementation repose sur URLSession
pour le téléchargement et sur NSCache
pour cacher les images. De plus, un niveau de cache supplémentaire URLCache
sert à cacher les réponses du réseau.
Closure
On utilise différents type de closure pour retourner des resultats de manière asynchrone. La closure CancelBlock
sert à annuler le chargement en cas de besoin.
typealias DataBlock = (Data) -> Void
typealias ImageBlock = (UIImage) -> Void
typealias ErrorBlock = (Error) -> Void
typealias CancelBlock = () -> Void
SimpleImageManager.swift
L’interface publique est plutôt simple:
shared
: Cette propriété retourne une instance partagé de ce singletonfetch
: Cette methode permet de charger une image à partir de l’url fournie