iOS NSKeyedArchiver实现步骤
1. 创建要归档的对象
首先,你需要创建一个自定义的对象,这个对象需要符合NSCoding协议,以便进行归档和解档操作。
class Person: NSObject, NSCoding {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
required init?(coder aDecoder: NSCoder) {
self.name = aDecoder.decodeObject(forKey: "name") as! String
self.age = aDecoder.decodeInteger(forKey: "age")
}
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: "name")
aCoder.encode(age, forKey: "age")
}
}
2. 归档对象
创建一个实例对象,并使用NSKeyedArchiver将其归档到文件中。
let person = Person(name: "Alice", age: 25)
let data = NSKeyedArchiver.archivedData(withRootObject: person)
try? data.write(to: filePath)
3. 解档对象
从文件中读取归档数据,并使用NSKeyedUnarchiver解档为对象。
if let data = try? Data(contentsOf: filePath) {
if let person = NSKeyedUnarchiver.unarchiveObject(with: data) as? Person {
print("Name: \(person.name), Age: \(person.age)")
}
}
通过以上三个步骤,你就可以实现NSKeyedArchiver的归档和解档操作了。记得在归档和解档对象时,需要遵循NSCoding协议,并实现encode和init方法。祝你顺利!