Block什么时候会导致循环引用

1 、循环引用就是当self 拥有一个block的时候,在block 又调用self的方法。形成你中有我,我中有你,谁都无法将谁释放的困局。

举个栗子:

页面1声明了一个block,然后在页面中给blcok赋值,然后又在赋值里面调用了self

self.myBlock = ^{ 

     [selfdoSomething]; 

 };


2、在页面2中声明了block,在页面1中声明了页面2

然后又在页面1中实例化页面2时赋值了页面2的block,在赋值中又调用了页面1的block

如果就会导致下图的状态

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • block.png iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实...
    全栈农民工阅读 601评论 0 1
  • Block使用场景,可以在两个界面的传值,也可以对代码封装作为参数的传递等。用过GCD就知道Block的精妙之处。...
    Coder_JMicheal阅读 740评论 2 1
  • iOS代码块Block 概述 代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,B...
    smile刺客阅读 2,375评论 2 26
  • 概述 在C#异步编程时我们经常进行函数回调,由于函数调用时异步执行的,如果我们想让一个操作执行完成之后再执行另一个...
    宋进锋阅读 18,737评论 1 7
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 3,787评论 0 23