美文网首页iOS 开发
YTTCache 数据缓存处理

YTTCache 数据缓存处理

作者: CuiXg | 来源:发表于2018-11-19 14:56 被阅读1次

    iOS 开发中经常会用到本地存储,加之最近在了解组件化,所以对本地存储这块做了组件化处理,且在完善中...
    博客同步于YTTCache | AndyCuiの博客

    YTTCache

    使用 SQLite3 对数据进行存储,采用键值对形式存储数据.
    使用 SQLite.swift 进行数据库操作.

    Installation

    YTTCache 可以通过 CocoaPods 安装. 只需要在你的 Podfile 添加:

    pod 'YTTCache'
    

    Usage

    采用 SQLite3 进行存储,表格有5个字段: id, cache_data, cache_key, cache_time, cache_data_MD5.

    • id: 数据唯一标识.
    • cache_data: 需要缓存数据,采用 Data 数据类型,对应数据库 Blob 类型.
    • cache_key: 数据对应的 key, 对字符串 MD5 的值.
    • cache_time: 添加/修改数据的时间(时间戳).
    • cache_data_MD5: 缓存数据的 MD5 值,查询时校验使用.

    YTTDataBase

    基础类,通过 SQLite.swift 对数据库进行操作,实现了添加,修改,查询,删除操作.

    YTTCache

    缓存操作的主要操作类,实现了添加,修改,查询,删除操作(主要针对 String 与 Data).

    public class YTTCache
    
    /// 缓存数据
    ///
    /// - Parameters:
    ///   - value: 字符串
    ///   - key: 键值
    /// - Returns: 是否缓存成功
    public class func storeString(_ value: String, key: String) -> Bool 
    
    
    /// 缓存数据
    ///
    /// - Parameters:
    ///   - value: Data
    ///   - key: 键值
    /// - Returns: 是否缓存成功
    public class func storeData(_ value: Data, key: String) -> Bool 
    
    
    /// 更新缓存数据
    ///
    /// - Parameters:
    ///   - value: 字符串
    ///   - key: 键值
    /// - Returns: 是否更新成功
    public class func updateStoreString(_ value: String, key: String) -> Bool 
    
    
    /// 更新缓存数据
    ///
    /// - Parameters:
    ///   - value: data
    ///   - key: 键值
    /// - Returns: 是否更新成功
    public class func updateStoreData(_ value: Data, key: String) -> Bool 
    
    
    /// 获取缓存信息
    ///
    /// - Parameter key: 键值
    /// - Returns: 获取到的 Data
    public class func dataForKey(_ key: String, timeoutIntervalForCache interval: TimeInterval = .greatestFiniteMagnitude) -> Data? 
    
    
    /// 获取缓存信息
    ///
    /// - Parameter key: 键值
    /// - Returns: 获取到的字符串
    public class func stringForKey(_ key: String, timeoutIntervalForCache interval: TimeInterval = .greatestFiniteMagnitude) -> String? 
    
    
    /// 清除某条数据
    ///
    /// - Parameter key: 键值
    /// - Returns: 是否清除成功
    public class func removeCacheByKey(_ key: String) -> Bool 
    
    
    /// 清除缓存
    ///
    /// - Returns: 是否清除成功
    public class func cleanCache() -> Bool 
    
    

    YTTRequestCache

    基于 YTTCache 实现,缓存数据为 JSON 字符串, key 值通过 url 与参数生成.

    public class YTTRequestCache
    
    /// 缓存请求结果 JSON 数据
    ///
    /// - Parameters:
    ///   - jsonStr: JSON 字符串
    ///   - url: 请求 URL 地址
    ///   - param: 请求参数
    /// - Returns: 是否缓存成功
    public class func storeJSONString(_ jsonStr: String, url: String, param: [String: Any]) -> Bool 
    
    
    /// 获取缓存 JSON 数据
    ///
    /// - Parameters:
    ///   - url: 请求 URL 地址
    ///   - param: 请求参数
    ///   - timeoutIntervalForCache: 缓存时间(以秒为单位),默认永久
    /// - Returns: 缓存 JSON 字符串,没有返回 nil
    public class func JSONStringForKey(url: String, param: [String: Any], timeoutIntervalForCache interval: TimeInterval = .greatestFiniteMagnitude) -> String? 
    
    
    /// 删除某条 JSON 数据
    ///
    /// - Parameters:
    ///   - url: 请求 URL 地址
    ///   - param: 请求参数
    /// - Returns: 是否删除成功
    public class func removeJSONStringForKey(url: String, param: [String: Any]) -> Bool 
    
    

    Extension

    对常用一些类进行扩展,方便数据缓存操作.(eg: 取: String.initWithCache("students") 保存: "students".cache.storeWithKey("students"))

    StringExtension

    UIImageExtension

    DictionaryExtension

    ArrayExtension

    相关文章

      网友评论

        本文标题:YTTCache 数据缓存处理

        本文链接:https://www.haomeiwen.com/subject/hrfafqtx.html