typeof(self) bself = self的作用
来源:程序员人生 发布时间:2014-09-06 10:06:31 阅读次数:2958次
block语句对于其变量都会形成strong reference,对于self也会形成strong reference ,而如果self本身对block也是 strong reference 的话,就会形成 strong reference 循环,造成内存泄露,为了防止这种情况发生,在block外部应该创建一个weak(__block) reference。
所以在block内如果有self的话,一般都会在block外面加一句_block typeof(self)bself = self;
__block typeof(self) bself = self;
[self methodThatTakesABlock:^ {
[bself doSomething];
}
self是如此,对于其他变量亦是如此。别忘了在block中使用变量前对其进行弱引用。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠