Безопасность памяти в быстром (inout param/ долгосрочный доступ)
Я читал главу о безопасности памяти на swift и хотел попробовать этот пример:
var stepSize = 1
func increment(_ number: inout Int) {
number += stepSize
}
increment(&stepSize)
Событие, если в нем говорится об ошибке из-за конфликтующего доступа к stepsize
переменная (долгосрочный доступ в письменной форме), она на самом деле компилируется и дает мне правильный ответ (т.е. 2).
Кто-нибудь может привести пример, когда долгосрочный доступ к переменной приведет к ошибке? Я не могу прийти с одним.
редактировать:
Я тестировал с игровой площадкой на Xcode 9.2
0 ответов
Он будет работать на детской площадке - детская площадка не идеальный симулятор.
Попробуйте "New -> Project -> Single View App"
Этот фрагмент кода будет зависать (даже на симуляторе) во время выполнения с чем-то вроде:
Thread 1: Simultaneous accesses to 0x6000022b4310, but modification requires exclusive access