Block循环引用
前言 在我们开发的过程中,block运用的非常广泛,为了避免写过多的delegate或者是通知等,项目中会运用大量的block回调,虽然现在大部分的工程都是采用ARC,但是在ARC上面使用block更为复杂,在ARC机制下block自动的被copy到堆上(如果是在stack,或者是全局区是不会造成循环引用的),更具体的怎么个复杂情况,我在这里就不阐述了,大家可以去参考网络上的文章,已经写得很全面了;大家可以去参考学习他们的文章。 (一)本文主要描述在使用block回调过程中一个比较容易产生循环引用的场景,即在block中引用了对象本身的成员变量或者说属性;以下是我准备的一些方法, #import "SuperObject.h" #import <UIKit/UIKit.h> @class SonObject; typedef void(^CustomerBlock)(); typedef void(^CustomerBlockWithPara)(SonObject *son); @interface SonObject : SuperObject @property (nonatomic,copy) CustomerBlock blockTest; @property (nonatomic,copy) NSString *age; - (void)demo: