KVC(Key-value coding)是一种通过字符串键访问对象属性的机制。它允许在运行时动态地获取和设置对象的属性值。KVC 是 Objective-C 中的特性,但在 Swift 中也可以使用,前提是对象继承自 NSObject。
class Person: NSObject {
@objc var name: String
@objc var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
let person = Person(name: "John", age: 30)
// 使用 KVC 获取属性值
if let name = person.value(forKey: "name") as? String {
print("Name: \(name)")
}
// 使用 KVC 设置属性值
person.setValue("Doe", forKey: "name")
if let name = person.value(forKey: "name") as? String {
print("Updated Name: \(name)")
}