国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > 当block中用到self时,需谨慎!

当block中用到self时,需谨慎!

来源:程序员人生   发布时间:2014-12-19 08:22:48 阅读次数:3487次

让人蛋疼的block!

block对其变量都会构成strong reference,对self也会构成strong reference ,而如果self本身对block也是 strong reference 的话,就会构成 strong reference 循环,造成内存泄漏,为了避免这类情况产生,在block外部应当创建1个week(__block) reference。


所以在block内如果有self的话,1般都会在block外面加1句_block typeof(self)bself = self;

__block typeof(self) bself = self; [self methodThatTakesABlock:^ { [bself doSomething]; }

1定要避免在block中用到self时把self对象retain, 造成内存泄漏。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生