gpt4 book ai didi

swift - Swift 4 中的 SWIFT_ENFORCE_EXCLUSIVE_ACCESS 是什么?

转载 作者:行者123 更新时间:2023-11-28 06:01:10 24 4
gpt4 key购买 nike

什么是内存独占访问以及不同选项的含义是什么?

This proposal对其进行了解释,但也许有人可以提供更简单的解释以及不同选项的实际影响/危险?

最佳答案

独占访问是一种防止同时多次访问同一内存地址的策略。

下面不冲突,因为 x 在某一时刻被读取,而在另一时刻被改变。

var x: String = "Hello,"
x = x + " world!"

但是,考虑一下:

extension String {
mutating func replace(_ function: () -> String) {
self = function()
}
}

var x: String = "Hello,"
x.replace { x + " world!" }

变异函数对变量进行写访问,闭包捕获在写入时尝试读取的变量,这违反了独占内存访问。

因此,编译器标志会在发现您这样做时显示错误,以阻止您犯错误。 (错误是因为行为未定义)

阅读“属性访问冲突”下的更多信息:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/MemorySafety.html#//apple_ref/doc/uid/TP40014097-CH46-ID571

关于swift - Swift 4 中的 SWIFT_ENFORCE_EXCLUSIVE_ACCESS 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com