我有一個初始化,在一個類的實例需要(我希望每個人都知道這意味着它的傳遞通過引用)斯威夫特複印
我希望能夠複製對象並存儲在兩個類的實例變量上,這樣,我有一個函數可以用作「重置」,它將設置我對某個點所做的任何更改,回到之前的狀態。
所以像:
convenience init(_ item:Item?){
self.init()
self.item = item
self.undoItem = item
}
func reset(){
self.item = self.undoItem
self.reloadInfo()
}
我沒有什麼應該是一個比較直接的解決方案很成功。我對Swift和iOS開發太新了。
這兩種方法在哪些類中?使用這些方法演示問題的示例代碼更新您的問題。說明代碼實際發生了什麼,以及你想要發生什麼。 – rmaddy
我不明白爲什麼這很難理解。我想知道如何能夠將項目的副本傳遞給init,以便我可以將它存儲到兩個不同的位置,以便它們不共享相同的引用。這會讓我對其中的一個進行更改,如果用戶決定撤消這些更改,則可以使用重置功能來實現此功能。 – daredevil1234
確保'Item'有一個複製初始值設定項,並使用它。請注意,如果您沒有進行深層複製,如果任何屬性都是引用類型,則可能仍然存在問題,因爲如果製作淺度副本,則會有兩個不同的「Item」對象,但它們都會引用到其引用類型成員變量的相同實例。 –