¿Cómo get respuestas almacenadas en caching con Alamofire mientras la aplicación está fuera de línea?

Después de get una response través de Alamofire, en algunos casos , implementar una database o administrar el almacenamiento local yo mismo (file, etc.) puede ser un poco exagerado .

Sé sobre el requestCachePolicy de Alamofire y ya está almacenando respuestas (basadas en la max-age cache-control ) , pero esto tiene más que ver con networkingucir el número de requestes / mejorar la experiencia cuando está en línea .

¿Pero es posible usar la respuesta en caching cuando no tengo connection disponible a través de Alamofire? (¿Proporciona Alamofire alguna forma conveniente de manejar esto?)

Para lograr este comportamiento. Debe tratar de modificar la request "en curso", está a punto de ejecutarse y establecer el indicador returnCacheDataDontLoad o returnCacheDataElseLoad para get el comportamiento deseado. (Depende de sus necesidades)

Algo como:

 var req = URLRequest(url: URL(string: "http://foo.bar.com/res")!) if noInternet { req.cachePolicy = .returnCacheDataDontLoad } 

También asegúrate de las políticas de almacenamiento en caching que la aplicación está negociando con el server por si acaso necesitas modificarla también.

¡Espero eso ayude! 🙂