IOS中OC的BLOCK问题

来源:互联网 发布:js判断是否为质数 编辑:程序博客网 时间:2024/05/17 22:49

今天去面试,面试官问到了oC中的BLOCK问题,然后觉得OC就是一个无名函数,然后使用上没有啥区别啊?


问题就在这:OC的BLOCK中有一个self的东东,这个东西是一个强应用的东东,如果这个self出现在你的block中,那你估计多半死掉了;

所有面试官在问道block的问题时候,最关注这个问题,因为强引用在对象被释放掉,而block没有执行完的时候,self的内容就死在了内存里,只有程序被系统干掉的时候,这一个区域的内存才会被释放。

解决办法就是:

-(void) _week *me = self

block{

..=self

}


将一个弱引用的指针穿进去,因为如引用会在对象释放掉的时候自动释放。


0 0
原创粉丝点击