簡體   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