Swift4 中的Encoding 和 Decoding
最近项目上后端给前端自动生成所有的Model和HTTP客户端,不需要自己写Model承接了,但是后台生成的model是struct,所以研究了一下,怎么把Model保存到本地。最主要的是把struct转成NSData,然后就可以直接归档了
import UIKit
struct Person: Codable {
var name: String
var code: String
}
struct Language : Codable {
var name: String
var version: Int
var person: Person
}
//结构体转Data
let person = Person(name: "zj", code: "00101")
let l = Language(name: "aaa", version: 34, person: person)
let encoder = JSONEncoder()
let encoded = try? encoder.encode(l)
//Data转结构体
let decoder = JSONDecoder()
let obj = try? decoder.decode(Language.self, from: encoded!)