IOS block 对象强引用和若引用

Posted 木头Ge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS block 对象强引用和若引用相关的知识,希望对你有一定的参考价值。

1. 在block外面这样:
__weak MyController *weakSelf = self 或者 __weak __typeof(self) weakSelf = self;

是为了防止强引用导致循环引用

2.执行block方法体的时候也可以转换为强引用之后再使用
MyController* strongSelf = weakSelf; if (!strongSelf) { return; }

那么,里面变成强引用后,不是又导致循环引用了吗?
有意思的就在这里,ios中,block内部,对弱应用的强引用,不会影响对象在外部的释放,同时,保证内部该对象也不会被提前释放。
这真是一个两全其美的办法。










以上是关于IOS block 对象强引用和若引用的主要内容,如果未能解决你的问题,请参考以下文章

【OC语法】block的循环引用

block-循环引用

iOS 循环引用解决方案

iOS中block的使用详解

block强弱引用

iOS循环引用常见场景和解决办法