当我将新对象追加到对象数组时,会出现意外的结果。附加似乎覆盖数组中的现有对象,然后附加它自己。将对象追加到对象数组
有什么想法?或者我错过了一些非常简单的事情。
下面是测试代码,从我的游乐场:
class myRecord {
var firstName: String?
var lastName: String?
}
var myRecords = [myRecord]()
var tempRecord = myRecord()
tempRecord.firstName = "John"
tempRecord.lastName = "Brown"
myRecords.append(tempRecord)
tempRecord.firstName = "Jane"
tempRecord.lastName = "Doe"
myRecords.append(tempRecord)
for x in 0..<myRecords.count {
print(x, "=", myRecords[x].firstName!, myRecords[x].lastName!) }
Console output:
0 = Jane Doe
1 = Jane Doe
是的,因为你一直在改变'tempRecord' – Lamar
这个相同对象的值@Lamar说的。该数组具有该内存中该对象的地址。如果更新该对象的字节,该数组仍然具有与该对象相同的地址,但该地址处的内容已更改。 – mdo123
你解决了你的问题吗? – Jaydeep