私はクラスのインスタンスを取り込んのinitを持っている(私は誰もがそれはそれは、参照渡しだ意味ことを知っている願っていた)スウィフトが渡されたクラスのインスタンスのコピー
私がコピーできるようにしたいを作りますオブジェクトと2つのクラスのインスタンス変数に格納するように、私は特定のポイントに行っていた変更を設定する "リセット"として動作するように意図されている関数を持っています。
そうのようなもの:
convenience init(_ item:Item?){
self.init()
self.item = item
self.undoItem = item
}
func reset(){
self.item = self.undoItem
self.reloadInfo()
}
私は比較的簡単ソリューションがどうあるべきかとの多くの成功を持っていませんでした。私はSwiftとiOSの開発にはあまりにも新しいです。
これらの2つの方法はどのようなクラスですか?これらのメソッドを使用して問題を示すサンプルコードで質問を更新してください。コードで実際に何が起きているのか、そして何を起こそうとしているのかを明確にします。 – rmaddy
なぜ理解しにくいのか分かりません。私は、同じ参照を共有しないように、別の場所に格納できるように、initに渡されたアイテムのコピーを作成する方法を理解したいと思います。これにより私は1つに変更を加えることができ、ユーザーがそれらの変更を元に戻すことを決めた場合、リセット機能がその機能を呼び出すことができます。 – daredevil1234
'Item'にコピー初期化子があることを確認し、それを使用してください。深いコピーを作成しないと、いずれかのプロパティが参照型である場合に問題が発生する可能性があります。これは、浅いコピーを作成した場合、2つの異なる 'Item'オブジェクトを持つためです。参照型メンバー変数の同じインスタンスに変換します。 –