我有以下Swift代码
public class VisualLayer {
public var layerItems:[VisualLayerItems] = []
}
在代码中,我尝试添加/删除元素到layerItems如下:
var layerItems = visualLayer.layerItems
layerItems.insert(item, at: index)
问题是这并没有修改visualLayer的layerItems数组。相反,它创建数组layerItems的副本,并将item插入其中。我不知道为什么layerItems不通过引用修改,尽管是类的一部分?
数组是一个结构体,每次你传递它时,Swift都会复制这个数组。如果你想编辑VisualLayer类中的layerItems,你应该传递整个类,这是通过引用传递的,然后编辑layerItems。如果将类中的layerItems传递给函数,则使用inout传递原始数组。