Swift 4.0 Codable 序列化
阿新 • • 發佈:2018-12-11
如果要將一個物件持久化,需要把這個物件序列化。過去的做法是實現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)