//写法一、 Swfit中的循环引用问题 (更安全) 可选项 loadData{ [weak self] ( ) ->( ) in print (self?.view) //这里的self是
弱引用了。 } //写法二 (不够安全) 不可选项 //表示闭包中的self ,不做强引用,但是如果对象被释放,地址保留。 //如果self 真的被释放, 执行到此处,会报野指针 //类似于OC中定义assign
属性 loadData{ [u
Nowned self] ( ) ->( ) in print (self?.view) } //老式的闭包方式 (模仿OC) weak var weakSelf = self loadData{ ( ) ->( ) in // ?表示weakSelf有可能为nil ,当前
代码不会出现,但是确实存在可能 // 使用?一旦wekSelf已经被释放, 后续
代码不会执行,不会奔溃 //推荐使用 ? //! 表示程序员认为 weakSelf 一定有值,一旦wakSelf被释放,程序会崩溃 print(weakSelf?.view) }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。