[英]How to access and assign value to a variable using a string that matches variable name
我想通过使用字符串equals到变量名来定位类中的变量(属性)。 有办法吗?
class Person {
let name: String
let email: String
let address: String
let propertiesMap: [String : String] = [
"person_name": "name",
"person_email_address": "email"
]
init(_ data: NSDictionary) {
for element in data {
# string key address of Person property
propertiesMap[ element.key ]
# value to be assigned to the property
element.value
}
}
}
我希望循环遍历数据NSDictionary,如果字典的键匹配类的属性,则将数据NSDictionary中的键值赋给class属性
一种方式可能是
class Person: NSObject{
@objc var name: String?
@objc var email: String?
class func from(dict: [String:String]) -> Person{
let v = Person()
for element in dict{
v.setValue(element.value, forKey: element.key)
}
return v
}
}
func test(){
let p = Person.from(dict: ["name":"John","email":"john@doe.com"])
print("name \(p.name ?? ""), email \(p.email ?? "")")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.