码迷,mamicode.com
首页 > 其他好文 > 详细

小心一些,断言可能让你的造成循环引用NSAssert

时间:2015-11-25 11:02:08      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

block和self的相互引用造成的循环引用,想必大家都是明白的。上下面的代码(截取部分)

__weak typeof(self) weakSelf = self;

    self.jsBridgeFunctionDic = @{

                                JSBridgeCallNativePage:

                                    ^(NSDictionary *data){

                                        NSLog(@"JSBridgeCallNativePage");

                                        NSDictionary *params = [data dictionaryForKey:@"params"];

                                        if (params) {

                                            NSString *url = [params stringForKey:@"url"];

                                            if (url.length > 0) {

                                               //打开新页面

                                            }else {

                                                NSAssert(YES, @"url不能为空");                                            }

                                        }

                                    }

            }

貌似没有什么问题,但是页面不释放,苦思无果,随便点到NSAssert这个断言的代码内,发现了里面竟然包涵了一个self。居然是这货造成的循环引用。

不多说了,请使用NSCAssert。

小心一些,断言可能让你的造成循环引用NSAssert

标签:

原文地址:http://www.cnblogs.com/qianhongqiang/p/4993811.html

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