Безопасность памяти в быстром (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
Другие вопросы по тегам