我在读斯威夫特的记忆安全章节,想试试这个例子:

var stepSize = 1

func increment(_ number: inout Int) {
    number += stepSize
}

increment(&stepSize)

事件如果它表示由于对stepsize变量的访问冲突而出现错误(以书面形式进行长期访问),则它实际上会编译并给出正确的答案(即2)。
谁能举例说明长期访问变量会导致错误?我不能带一个。
编辑:
我在Xcode9.2上的操场上测试过

最佳答案

它将在操场上工作-操场不是一个完美的模拟器。
尝试“新建->项目->单视图应用程序”
这段代码在运行时会崩溃(甚至在模拟器上),原因如下:

Thread 1: Simultaneous accesses to 0x6000022b4310, but modification requires exclusive access

10-08 19:37