我有这个简单的代码:
for index in 0..<people.count {
var person = people[index]
var home = homes[index]
person.home = home
println("\(person.home)")
}
for index in 0..<people.count {
var person = people[index]
println("\(person.home)")
}
人:
struct Person: Deserializable {
var home: Home?
init() { }
init(data: [String : AnyObject]) {
home <-- data["home"]
}
}
在第一个循环的println
语句中,它会将home
分配给它各自的person
并打印正确的home
。
在第二个循环中,它打印nil
(恢复正常)。这几乎就好像第一个循环没有效果。
我不知道如何调试它。请帮忙
答案 0 :(得分:4)
您不会提供有关 的人的任何信息。但假设它是一个结构。然后我不希望对people
阵列的人产生任何影响,因为var person = people[index]
中的人是副本。
因此,在这种情况下,您需要在第一个循环中添加一行,将更改后的人员写回数组:
people[index] = person