前面我们使用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<Any>!
var Product:Array<Any>!
}
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)
}
}
}
}
总结:
入门级别的文章,请多多指教。
网友评论