swift中使用EGOCache方便存储model

前面我们使用MJExtension实现了Model的归档:http://www.jianshu.com/p/29fa289f6492
那么我们就可以很方便的存储model了。
那要是能有个库直接存储model,岂不是更方便,接下来就说一下EGOCache这个库的用法。

EGOCache 这个库,我最常用的就是setobject ,forkey的形式来存。这个跟字典基本是一样的。

1.首先当然还是导入工程了
cocoapods的文章那么多,我也不会讲,自己翻翻看看吧

pod 'EGOCache'

2.接下来导入到类里面了

import SwiftyJSON
import MJExtension
import EGOCache

2.1
HotKeyWordModel 这个类是待会需要存储的对象的类
BaseModel 是上一篇文档中写到的 能够实现归档的类
http://www.jianshu.com/p/29fa289f6492
通过继承的方式,我们就不再需要在本类中写一堆归档的代码了

class HotKeyWordModel: BaseModel{
    var Company:Array!
    var Product:Array!
}

2.2
接下来就是解析从服务器获取到的数据了
SwiftyJSON 是用来解析Json的一个库,也不介绍了

let dataJson = JSON(result!)["data"].rawValue

2.2
通过MJExtension将字典转成Model
这点跟在OC里面的写法是一样的

let hotKetWordModel = HotKeyWordModel.mj_object(withKeyValues: dataJson) as HotKeyWordModel

2.3(重点内容)
当然就是本文的主题 --存储了

let SaveHotKeyWordModel = "SaveHotKeyWordModel"

```SaveHotKeyWordModel````
就是我们存储hotKetWordModel所对应的key,当我们取值是也是要用到的

2.4 取值

let hotKetWordModel = EGOCache.global().object(forKey: SaveHotKeyWordModel) as! HotKeyWordModel

        print(hotKetWordModel.mj_JSONString())

2.5 存储的代码融合一下

import UIKit
import SwiftyJSON
import MJExtension
import EGOCache

let SaveHotKeyWordModel = "SaveHotKeyWordModel"

class ViewControllerViewModel: BaseViewModel {

func GetHotKeyword() {
    NetWorkUtilsSwift .shareTools.request(methodType: .GET, urlString: Get_GetHotKeyword, parameters: nil) { (result, error) in
        
        if error == nil{
            let dataJson = JSON(result!)["data"].rawValue
            let hotKetWordModel = HotKeyWordModel.mj_object(withKeyValues: dataJson) as HotKeyWordModel

            EGOCache.global().setObject(hotKetWordModel, forKey: SaveHotKeyWordModel)
        }
    }
}

}


总结:
入门级别的文章,请多多指教。

你可能感兴趣的:(swift中使用EGOCache方便存储model)