在for循环中通过1行填充类属性?

时间:2016-03-10 00:13:02

标签: ios swift2

假设我有一个有10个属性的类。我有一个XML响应(在本例中为AEXMLDocument),其中元素标记与属性名称完全匹配。有没有办法可以在for循环中填充值而不是写出10行代码?我使用*** property.name ****来显示我想放置这些变量的位置。那部分实际上并不在代码中。

class User(){
   var firstName = String()
   var lastName = String()
   var middleName = String()
   ...
   var property10 = String()

}

func populateUser (xml: AEXMLDocument) -> User{
    var returnUser = User()
    for property in xml.root["SOAP-ENV:Body"]["ns1:getUserResponse"]["return"].children{
        returnUser.***property.name*** = property.value
}
return returnUser

2 个答案:

答案 0 :(得分:1)

只要您从NSObject继承,就可以使用setValue(_, forKey:)方法。

答案 1 :(得分:0)

如果该类继承自NSObject,则可以使用key-value coding

returnUser.setValue(property.value, forKey: property.name)

虽然要小心。任何可以修改发送到您的应用程序的XML的人都可以修改User对象上的任何属性。