【发布时间】:2017-04-26 20:43:08
【问题描述】:
我有一个方法可以执行以下操作:
let object = sportsArray[0]
let newObject = object
newObject.items?.removeAll()
当我这样做时,'newObject''items' 数组现在是空的,这正是我想要的,但它也清空了 'object' 中的 'items' 数组。我在这里做错了什么?我该如何防止这种情况发生。我想在不影响原始对象的情况下对 newObject 进行更改。任何帮助将不胜感激。提前致谢!
【问题讨论】:
-
对象的类型是什么?它是一个类还是一个结构?结构可以隐式复制,而类需要显式复制
.copy()(如果它符合NSCopyingofc)。 -
检查 stackoverflow.com/questions/27812433/… 以获取 Array 的扩展,该扩展对继承自 Copying 协议的对象进行深拷贝。