Swift数组通过引用修改



我有以下Swift代码

public class VisualLayer {
public var layerItems:[VisualLayerItems] = []
}

在代码中,我尝试添加/删除元素到layerItems如下:

var layerItems = visualLayer.layerItems
layerItems.insert(item, at: index)

问题是这并没有修改visualLayerlayerItems数组。相反,它创建数组layerItems的副本,并将item插入其中。我不知道为什么layerItems不通过引用修改,尽管是类的一部分?

数组是一个结构体,每次你传递它时,Swift都会复制这个数组。如果你想编辑VisualLayer类中的layerItems,你应该传递整个类,这是通过引用传递的,然后编辑layerItems。如果将类中的layerItems传递给函数,则使用inout传递原始数组。

相关内容

  • 没有找到相关文章

最新更新