文字を作成していて、配列に格納したいと思います。私は2番目の文字を保存したいとき、それは最初の1のデータが上書きされるため、問題は、発生 - 変数は、コンテンツのミラーの代わりに保存されているように思える:遊び場でクラスデータを、変更できないスウィフト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")が表示されます。 2番目の項目を見てみると、両方の項目が( "ゴラム"、 "ハンス")です。
アレイに格納されたデータが個別の値であることを確認するにはどうすればよいですか?私はここに概念的な誤りがあると信じています。
お知らせください。
ありがとうございます!
WOW!驚くほど速いヘルプありがとう!クラスの代わりに "struct"を使用すると、問題が解決されます。スウィフト2でプログラミングされた私の参照コードは文字を "クラス"と定義していましたが(あまりにも多くの変更があったためにコードをもう実行できません)。 –
あなたのデザインを維持したい場合に備えて私の回答を更新しましたが、あなたの目標に応じてそれを改善する必要があります。 – Lawliet
別のことは、明快にするためにSwiftの命名規則を見てください。 – Lawliet