关闭

IOS中OC的BLOCK问题

标签: BLOCK IOS OC
85人阅读 评论(0) 收藏 举报
分类:

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


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

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

解决办法就是:

-(void) _week *me = self

block{

..=self

}


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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4416次
    • 积分:158
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类