我在读斯威夫特的记忆安全章节,想试试这个例子:
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