Какую политику кэширования следует использовать? - PullRequest
0 голосов
/ 09 марта 2020

Мои данные извлекаются из JSON API, и данные будут меняться за день. В настоящее время я использую reloadIgnoringLocalCacheData сейчас, который игнорирует данные кэша и всегда извлекает данные из исходного источника.

Мой вопрос заключается в том, можно ли сначала сравнить кэш с исходным, а если они не равны, то извлечь данные с сервера, в противном случае использовать данные кеша. или, может быть, установить время истечения для кэша, как это реализовать?

private var session: URLSession = {
        let config = URLSessionConfiguration.default
        config.urlCache = URLCache.shared
        config.waitsForConnectivity = true
        config.requestCachePolicy = .reloadIgnoringLocalCacheData
        return URLSession(configuration: config, delegate: nil, delegateQueue: nil)
    }()
    public enum CachePolicy : UInt {


        case useProtocolCachePolicy


        case reloadIgnoringLocalCacheData

        case reloadIgnoringLocalAndRemoteCacheData

        public static var reloadIgnoringCacheData: NSURLRequest.CachePolicy { get }


        case returnCacheDataElseLoad

        case returnCacheDataDontLoad


        case reloadRevalidatingCacheData
    }
...