繁体   English   中英

如何使用匹配变量名称的字符串访问和赋值给变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM