swift中防止闭包循环引用

swift中防止闭包循环引用,第1张

概述//写法一、 Swfit中的循环引用问题  (更安全)  可选项 loadData{ [weak self] ( ) ->( ) in print (self?.view)      //这里的self是弱引用了。 } //写法二 (不够安全)  不可选项 //表示闭包中的self ,不做强引用,但是如果对象被释放,地址保留。 //如果self 真的被释放, 执行到此处,会报野指针 //类似于OC //写法一、 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) } 总结

以上是内存溢出为你收集整理的swift中防止闭包循环引用全部内容,希望文章能够帮你解决swift中防止闭包循环引用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1083850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存