小编Jam*_*ang的帖子

在 swift 关闭中使用 `[weak self]` 是正确的方法吗?

我总是[weak self]在快速关闭中使用以防止引用循环。这是下面的代码,这是正确的方法吗?

someTask(completion: {[weak self] (result) in
        if self == nil {  
            return
        }

        //is it safe when reach here? 

        self!.xxx = yyy
        self!.doLongTermWork()
        self!.finish()  //will crash when self is nil?
    })
Run Code Online (Sandbox Code Playgroud)

弱自我不会对实例保持强大的控制。那么什么时候self.doLongTermWork(), 会selfnil其他地方再次设置?

closures weak swift

6
推荐指数
2
解决办法
4372
查看次数

标签 统计

closures ×1

swift ×1

weak ×1