Swift闭包循环引用

在swift中依然存在闭包循环引用的情况,和OC一样,在Block中self造成的循环引用并不是必然的,有时候也不会存在循环引用问题。

在swift中循环引用的解决方法

1.[weak self] 这种方式,self是可选项,如果self已经销毁,则为nil。

2.[unowned self]这种方式,self不是可选项,如果self销毁了,则出现野指针访问。(unowned相当于assign)

在OC中循环引用的解决方式

1.__weak typeof(self) weakSelf 如果self已经被释放,则为nil

2.__unsafe_unretained typeof(self) weakSelf 如果self已经被释放,则出现野指针访问

推荐阅读更多精彩内容

  • 在swift中依然存在闭包循环引用的情况,和OC一样,在Block中self造成的循环引用并不是必然的,有时候也不...
    落寒z阅读 244评论 0 2
  • 闭包表达式默认会对用到的外层对象产生额外的强引用(对外层对象进行了retain操作),保证执行代码时变量还在。 循...
    来金德瑞阅读 1,130评论 0 1
  • 无论OC中的Block还是Swift中的闭包Closure,经常因为使用不当从而造成循环引用从而导致内存泄漏,如何...
    Tony_Yang阅读 4,031评论 2 21
  • 2017年初,院上头下来一份文件,因为县里精神院的一医师突然失踪,故将我临时调去县里,处理精神病院事务。 说是临时...
    怪奇惊选集阅读 950评论 8 9
  • 题目 Reverse bits of a given 32 bits unsigned integer. For ...
    金发萌音阅读 175评论 0 1
  • 第十一节 离婚了 昨天我们去离婚了。 在韩鹏回来之前我其实一直没下定决心。我觉得婚姻是一件需要尊重的事情,内心深处...
    siwen阅读 154评论 0 1
  • 1我看到你了 2你是有价值的 3你是有贡献的 4你是值得我对你好的 关系,灵性 身份 价值观,信念 能力 行动 环...
    睡不醒的邢老吉阅读 153评论 0 0