有没有办法使用String访问类中的变量?例如。我有以下结构Person.swift
:
struct Person: Codable {
let name: String?
let id: String?
}
我可以使用某种字符串反射方法(如Java)来访问变量name
并更改变量,而不是调用Person.name = ""
方法吗?
您可以使用KVC将道具作为字符串访问
唯一的缺点是它最初来自Objects c,所以你不能使用结构,你的道具必须是Objective C动态类型:
class Person: NSObject, Codable {
@objc dynamic var name: String = ""
}
let person = Person.init()
person.name = "Mat" // Name value "Mat"
person.setValue("Josh", forKey: "name") // Name value "Josh"