从swift4开始,类和struct都支持KVC
1.继承自NSObject的类,标记为@objc的属性可以使用setValue(_:forKey)
2.非继承NSObject的类和结构体,使用索引+参数值
现在主要讨论2
struct ValueType{
var name:String
}
var object = ValueType(name: "Objective-C")
let name = \ValueType.name
object[keyPath: name] = "swift"
let valueOfName = object[keyPath: name]
print(valueOfName)
网友评论