我有一个初始化,在一个类的实例需要(我希望每个人都知道这意味着它的传递通过引用)斯威夫特复印
我希望能够复制对象并存储在两个类的实例变量上,这样,我有一个函数可以用作“重置”,它将设置我对某个点所做的任何更改,回到之前的状态。
所以像:
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”对象,但它们都会引用到其引用类型成员变量的相同实例。 –