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(NO, @"url不能为空");                                            }

}

}

            }

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

不多说了,请使用NSCAssert。

小心一些,断言可能让你的造成循环引用NSAssert的更多相关文章

  1. spring 循环引用问题,在一次问题调试过程中发现有个小伙伴竟然把循环引用设置成false了。估计是百度的时候没小心额外的代码吧。。。

    循环引用属性操作: 1)AbstractAutowireCapableBeanFactory类中的allowCircularReferences被设置为了false. 2)代码: Annotation ...

  2. iOS - 断言处理与调试

    一.Objective - C 中的断言: Objective - C 中的断言处理使用的是 NSAssertionHandler : 每个线程拥有它自己的断言处理器,它是 NSAssertionHa ...

  3. Delphi初学者应小心的六大陷阱

    Delphi初学者应小心的六大陷阱   作者:子夜编译       初学DelphiI的人,由于各种原因,对DelphiI中的许多概念不能很好的理解,并由此带来了许多的问题,或者是开发出的程序稳性不好 ...

  4. JUnit断言

    在本节中,我们将介绍一些断言方法.所有这些方法都受到 Assert 类扩展了java.lang.Object类并为它们提供编写测试,以便检测故障.下表中有一种最常用的断言方法的更详细的解释. 断言 描 ...

  5. Swift入门(四)——可选类型(Optionals)与断言(Assert)

    可选类型是什么? 首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,能够把String类型变量转换为Int类型变量. var stringValue = "5&q ...

  6. 企业IT管理员IE11升级指南【17】—— F12 开发者工具

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  7. AFNetworking到底做了什么

    写在开头: 作为一个iOS开发,也许你不知道NSUrlRequest.不知道NSUrlConnection.也不知道NSURLSession...(说不下去了...怎么会什么都不知道...)但是你一定 ...

  8. iOS 最全面试题

    HTTP/1.0 在HTTP/1.0版本中,并没有官方的标准来规定Keep-Alive如何工作,因此实际上它是被附加到HTTP/1.0协议上,如果客户端浏览器支持Keep-Alive,那么就在HTTP ...

  9. 最完整PHP.INI中文版

    ;;;;;;;;;;;;;;;;;;; 关于php.ini ;;;;;;;;;;;;;;;;;;;; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录 ...

随机推荐

  1. spring+hibernate ---laobai

    biz包: package com.etc.biz; import java.util.List; import org.springframework.orm.hibernate3.support. ...

  2. GridView数据格式化

    一.动态生成列的格式化 此种GridView中的列是动态生成的,格式化可以通过RowDataBound事件进行.如下边代码,对第十列的值进行格式化. protected void gvUserList ...

  3. WinForm------Reflector反编译工具下载

    地址: http://www.ddooo.com/softdown/70642.htm

  4. beautifulsoup测试

    import re from bs4 import BeautifulSoup html_doc = """ <html><head><ti ...

  5. 英文分词算法(Porter stemmer)

    http://blog.csdn.net/whuslei/article/details/7398443 最近需要对英文进行分词处理,希望能够实现还原英文单词原型,比如 boys 变为 boy 等. ...

  6. String类中的一些函数使用方法

    最常用的就是Length()函数了,求字符串的长度 String s="";int i=s.length();i结果为0. 如果是String s=null;int i=s.len ...

  7. Tomcat 用户访问控制

    要设置Tomcat下的Host都有哪些ip能访问,可以在conf/server.xml的相应Host元素内加Value标签,示例: <Valve className="org.apac ...

  8. windows查看占用端口的进程

    1方法 先找到进程号: netstat -aon|findstr 再根据进程号得到进程: tasklist |findstr " 2结果

  9. Eclipse查看hadoop源代码出现Source not found,是因为没有添加.zip

    在我们hadoop编程中,经常遇到像看看hadoop的某个类中函数的功能.但是我们会遇到一种情况就是Source not found.遇到这个问题,该如何解决.因为我们已经引入了包,为什么会找不到.如 ...

  10. xutils 3.0 post 使用

    github:https://github.com/wyouflf/xUtils3 xUtils3简介 xUtils 包含了很多实用的android工具. xUtils 支持超大文件(超过2G)上传, ...