1
我正在創建字符並希望將它們存儲在數組中。當我想存儲第二個字符出現的問題,因爲它覆蓋了第一個數據 - 它似乎像變存儲內容的鏡像,而不是:以swift 4的形式將數據存儲在數組中,但不可修改
代碼在遊樂場:
import UIKit
class character {
var name: String
var owner: String
init() {
name = "Frodo"
owner = "Ben"
}
func random() {
name = "Gollum"
owner = "Hans"
}
}
var CharacterArray: [character] = []
let testchar = character.init()
CharacterArray.append(testchar)
testchar.random()
CharacterArray.append(testchar)
當我查看第一個附加數組時,(「Frodo,Ben」)被存儲。當我關注第二次追加時,兩個條目都是(「Gollum」,「Hans」)。
如何確保存儲在數組中的數據是單個值?我相信我在這裏有一個概念錯誤。
請指教。
謝謝!
哇!感謝驚人的快速幫助!使用「struct」而不是class來解決問題!我在swift 2中編寫的參考代碼雖然將字符定義爲「class」(但由於太多已改變,我無法再執行代碼!)。 –
我更新了我的答案,以防您想保留您的設計,但取決於您的目標,無論如何都應該改進。 – Lawliet
另一件事是你也應該看看在Swift中的命名約定,以求清晰。 – Lawliet