假设我有一个有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
答案 0 :(得分:1)
只要您从NSObject继承,就可以使用setValue(_, forKey:)
方法。
答案 1 :(得分:0)
如果该类继承自NSObject,则可以使用key-value coding:
returnUser.setValue(property.value, forKey: property.name)
虽然要小心。任何可以修改发送到您的应用程序的XML的人都可以修改User对象上的任何属性。