我正在阅读swift中的内存安全章节,并想尝试这个例子:
var stepSize = 1
func increment(_ number: inout Int) {
number += stepSize
}
increment(&stepSize)
如果由于对stepsize
变量的冲突(写入长期访问)存在冲突而导致错误,则事件实际编译并给出正确答案(即2)。
任何人都可以提供长期访问变量会导致错误的例子吗?我不能来一个。
编辑:
我在Xcode 9.2上用操场测试了
答案 0 :(得分:1)
它将在操场上工作-操场上不是一个完美的模拟器。
尝试“新建->项目->单视图应用程序”
这段代码将在运行时崩溃(甚至在模拟器上),例如:
Thread 1: Simultaneous accesses to 0x6000022b4310, but modification requires exclusive access