當我將新對象追加到對象數組時,會出現意外的結果。附加似乎覆蓋數組中的現有對象,然後附加它自己。將對象追加到對象數組
有什麼想法?或者我錯過了一些非常簡單的事情。
下面是測試代碼,從我的遊樂場:
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