Swift 4.0 Codable 序列化

如果要将一个对象持久化,需要把这个对象序列化。过去的做法是实现NSCoding协议,但实现NSCoding协议的代码写起来很繁琐,尤其是当属性非常多的时候。

Swift 4中引入了Codable协议,可以大大减轻了我们的工作量。我们只需要让需要序列化的对象符合Codable协议即可,不用再写任何其他的代码。

struct Language: Codable  {
      var name: String
      var version:Int
}

1,Encode操作

我们可以直接把符合了Codable协议的对象encode成JSON或者PropertyList

let swift = Labguage(name:"Swift",version:4)

//encode对象
let encodedData = try JSONEncoder().encode(swift)

//从encoded对象获取String
let jsonString = String(data:encodedData,encoding: .utf8)
print(jsonString)

//打印结果为:
Optional("{\"name\":\"Swift\",\"version\":4}")

2,Decode操作

let decodedData = try JSONDecoder().decode(Language.self,from:encodeData)
print(decodedData.name,decodedData.version)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值