是否可以使用String访问类中的变量?例如。我有以下结构Person.swift
:
struct Person: Codable {
let name: String?
let id: String?
}
我可以访问变量name
并使用某种字符串反射方法(例如Java)而不是调用Person.name = ""
方法来更改变量吗?
答案 0 :(得分:0)
您可以使用 KVC
以字符串形式访问道具唯一的缺点是它最初来自 Objects ,因此您不能使用结构,并且道具必须是 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"