小编Bou*_*yan的帖子

Swift 中闭包如何捕获值?

我正在运行下面的代码 -

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

ios swift

7
推荐指数
1
解决办法
5346
查看次数

标签 统计

ios ×1

swift ×1