Одновременный доступ к <Address>, но для модификации требуется эксклюзивный доступ - PullRequest
0 голосов
/ 05 декабря 2018

Я хочу указать свойство, которое является массивом для манипулирования, в функции 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 голосов
/ 05 декабря 2018

Очень подробно объяснено в документации Swift:

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

В основном вы угрожаете изменить / записать один и тот же объект двумя разными способами одновременно.Это бессвязно, и если компилятор не остановит вас, время выполнения будет.

...