JMC*_*JMC 6 swift swift-concurrency
考虑以下代码:
class Cat {
var name = "Tom"
}
class Globals {
var cat = Cat()
}
let glob = Globals()
func one () {
Task {glob.cat.name="Max"} // Expected Warning about some nonSendable moving into a different concurrency domain
}
Run Code Online (Sandbox Code Playgroud)
通常,-warn-concurrency启用后,Swift/Xcode 会警告不可发送的内容跨并发域。
根据我的理解,传递给的闭包Task必须始终是一个@Sendable闭包。闭包@Sendable只能捕获 Sendables。但是,Globals 不是可发送类型。我预计会出现类似以下的警告
@Sendable在闭包中捕获具有不可发送类型“Globals”的“glob”
不会发出此类警告。
| 归档时间: |
|
| 查看次数: |
292 次 |
| 最近记录: |