SWIFT:在数组中使用引用而不是复制对象

SWIFT: Using reference in array instead of copying Object

提问人:Peter71 提问时间:6/24/2015 更新时间:6/24/2015 访问量:179

问:

我使用对象数组。然后我将它们中的一些添加到另一个数组中。但它们被复制了。因此,当我更改其内容时,原始值保持不变。

var primary = [fileObj]()

for image in images {
    if image.oldID != 0 && image.priority != noPriority {
        primary.append(image)
    }
}

如何在数组中添加引用,以便能够直接更改对象中的内容?

例如:

primary[2].priority = -1
阵 列 迅速 参考 可变

评论


答:

0赞 giorashc 6/24/2015 #1

从给定的代码来看,发生这种情况的唯一原因是 if 是一个结构体。 实例是按值复制的,而实例是通过引用传递的,因此更改为类而不是结构。fileObjstructclassfileObj