码迷,mamicode.com
首页 > 移动开发 > 详细

IOS block使用中碰到的一个小坑

时间:2015-06-25 19:33:01      阅读:3960      评论:0      收藏:0      [点我收藏+]

标签:

1.先上段代码                                                                                                                                       

       

     __block  typeof(self) tmpSelf = self;
    [tableview addLegendHeaderWithRefreshingBlock:^(){
        [ tmpSelf initData:NO];
    }];

   写的时候没怎么注意,后面测试的时候发现每次push到这个页面的时候内存就不断增大,而且比较有规律,考虑是内存泄露了,用静态和动态分析没发现有

内存泄露,但是内存就是不断的增长,后面一想是不是没释放,断点下dealloc发现果然没执行,然后各种检查各种委托代理看有木有循环引用,一圈看下来

我特么代理基本的用的weak修饰不太可能照成循环引用,后面没办法只能注释viewdidload函数里的各个方法,终于找到了问题所在,就是上面这段代码,感

觉好坑,以后写代码还是认真点,这个错误很无语,很难找这个问题,希望以后不会犯这样的错误。

 

 

2.正确的写法

 

__block __weak typeof(self) tmpSelf = self;
    [tableview addLegendHeaderWithRefreshingBlock:^(){
        [ tmpSelf initData:NO];
    }];

 

IOS block使用中碰到的一个小坑

标签:

原文地址:http://www.cnblogs.com/try-wyh/p/4600675.html

(3)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!