前言
Swift 4.0版本引入了一种新的对象序列化的方式Codeable
,用于代替原先OC语法的NSCode
协议。
在程序执行过程中,我们经常需要通过网络发送数据,保存数据到磁盘,这往往是一个对象序列化的过程;在Swift4.0开始,系统提供一套对象编解码的协议,可以自动或者自定义的实现对象的序列化。
typealias Codable = Decodable & Encodable
自动解码和编码
想要对象可编码,最简单的方式就是用可编码的类型去声明属性;
为了描述简单,结构体和对象都描述为对象
这些可编码的属性包括:Int
String
Double
Date
Data
URL
等
struct Landmark {
var name: String
var foundingYear: Int
}
接下来,我们只需要让对象实现Codeable
协议,该对象就自动实现了编码和解码。
struct Landmark: Codable {
var name: String
var foundingYear: Int
// Landmark now supports the Codable methods init(from:) and encode(to:),
// even though they aren'