iOS swift SDK详解之NSCoding协议
详解:NSCoding是对iOS中的Model类进行编码和解码必须要遵循的协议,如果一个对象要被归档,那么这个协议是必须的。 实现自动归档和解档。
代码:
class MyModel:NSObject,NSCoding {
var name:String
var age:Int32
init(name:String,age:Int32){
self.name = name
self.age = age
super.init()
}
required init(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObjectForKey("kName") as! String
self.age = aDecoder.decodeIntForKey("kAge")
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(self.name, forKey: "kName")
aCoder.encodeInt(self.age, forKey: "kAge")
}
}
调用:
let model = MyModel(name: "Wenchen", age: 24)
let data = NSKeyedArchiver.archivedDataWithRootObject(model)
let unArchedModel = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! MyModel
println("Name:\(unArchedModel.name); Age:\(unArchedModel.age)")
网友评论