同时访问<address>,但修改需要独占访问权

时间:2018-12-05 02:52:51

标签: swift4 shared-memory

我想指定属性,该属性是在函数myFunc中进行操作的数组,但是出现此错误。这是我的代码草图。

self.data = MyObject()

func myFunc(x: inout [Int], y: inout [[Int]]) {
    //manipulation code to x and y
}

myFunc(x: &self.data.array1, y: &self.data.array2)
myFunc(x: &self.data.array3, y: &self.data.array4)

任何想法如何使其起作用?在此用例中,是否应该使用更好的模式?谢谢!

1 个答案:

答案 0 :(得分:3)

在Swift文档中有非常详尽的解释:

https://docs.swift.org/swift-book/LanguageGuide/MemorySafety.html

基本上,您正威胁要同时以两种不同方式变异/写入同一对象。那是不连贯的,如果编译器没有阻止您,则运行时将停止。