我正在运行下面的代码 -
class Element {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Element is deinitializing...")
}
}
var element: Element? = Element(name: "Silver")
var closure = {
print(element?.name ?? "default value")
}
print(isKnownUniquelyReferenced(&element))
element?.name = "Gold"
element = nil
closure()
Run Code Online (Sandbox Code Playgroud)
它打印 -
true
Element is deinitializing...
default value
Run Code Online (Sandbox Code Playgroud)
上面的闭包捕获不是element很强吗?element里面怎么变成nil了closure?