2021-08-25

2021-08-25  本文已影响0人  我会回来的

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)")

上一篇下一篇

猜你喜欢

热点阅读