本文共 557 字,大约阅读时间需要 1 分钟。
类持有了myTimer,myTimer又持有了self,造成循环引用。
NSTimer会持有对象,所以在删除对象之前,需要将timer invalidate。
[ _myTimer invalidate ];
_myTimer = nil;
typedef void (^myBlock)();
@property (nonatomic, strong) myBlock block1;
一个类属性持有了myBlock,这时,如果myBlock再持有self,必然造成循环引用。 如果有循环引用,编译器会提示警告。 如果对象没有持有Block对象,那么不会产生循环引用。 如果对象持有了block对象,那么在block引用self的时候这么定义:
__weak typeof(self) weakSelf = self;
声明delegate时要用assign(MRC)或者weak(ARC),不要使用retain或者strong,会造成循环引用。
著作权声明:本文由http://my.csdn.net/Nathan1987_原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢