加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift中防止闭包循环引用

发布时间:2020-12-14 01:45:29 所属栏目:百科 来源:网络整理
导读://写法一、 Swfit中的循环引用问题 (更安全) 可选项 loadData{ [weak self] ( ) -( ) in print (self?.view) //这里的self是弱引用了。 } //写法二 (不够安全) 不可选项 //表示闭包中的self ,不做强引用,但是如果对象被释放,地址保留。 //如果self 真
//写法一、 Swfit中的循环引用问题 (更安全) 可选项 loadData{ [weak self] ( ) ->( ) in print (self?.view) //这里的self是弱引用了。 } //写法二 (不够安全) 不可选项 //表示闭包中的self ,不做强引用,但是如果对象被释放,地址保留。 //如果self 真的被释放, 执行到此处,会报野指针 //类似于OC中定义assign属性 loadData{ [unowned self] ( ) ->( ) in print (self?.view) } //老式的闭包方式 (模仿OC) weak var weakSelf = self loadData{ ( ) ->( ) in // ?表示weakSelf有可能为nil ,当前代码不会出现,但是确实存在可能 // 使用?一旦wekSelf已经被释放, 后续代码不会执行,不会奔溃 //推荐使用 ? //! 表示程序员认为 weakSelf 一定有值,一旦wakSelf被释放,程序会崩溃 print(weakSelf?.view) }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读