Geen omschrijving

NetWorkCache.swift 1.4KB

    // // NetWorkCache.swift // PaiAi // // Created by yangbin on 4/20/16. // Copyright © 2016 FFIB. All rights reserved. // import UIKit import Alamofire let DefaultNetWorkCache = NetWorkCache() struct NetWorkCache { init() { } func saveCache(_ task: URLSessionTask, params: [String : AnyObject], data: Data) { guard let request = task.originalRequest, let url = request.url?.absoluteString else { return } let cacheRequest = Alamofire.request(url, method: .get, parameters: params) cacheRequest.cancel() let cacheRespone = CachedURLResponse(response: task.response!, data: data) URLCache.shared.storeCachedResponse(cacheRespone, for: cacheRequest.request!) } func getCache(_ task: URLSessionTask, params: [String : AnyObject]) -> [String : AnyObject]? { guard let request = task.originalRequest, let url = request.url?.absoluteString else { return nil } let cacheRequest = Alamofire.request(url, method: .get, parameters: params).request let cache = URLCache.shared.cachedResponse(for: cacheRequest!) guard let data = cache?.data else { return nil } guard let res = try?JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: AnyObject] else { return nil } return res } }