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方法。祝你顺利!