基于项目报错:

WebViewJavascriptBridgeBase 中定义:
@property (assign) id <WebViewJavascriptBridgeBaseDelegate> delegate;

但是dealloc中没有释放

- (void)dealloc {
    self.startupMessageQueue = nil;
    self.responseCallbacks = nil;
    self.messageHandlers = nil;
}

这个是导致exc_bad_access(code=1,address=0x0)   (访问了已经释放的对象)这个crash的原因?

对于weak:指明该对象并不负责保持delegate这个对象,delegate这个对象的销毁由外部控制。

对于strong:该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用(Retain Cycles)

对于assing:也有weak的功效。但是网上有assign是指针赋值,不对引用计数操作,使用之后如果没有置为nil,可能就会产生野指针;而weak一旦不进行使用后,永远不会使用了,就不会产生野指针。

也就是说:weak比assign多了一个功能,当对象消失后自动把指针变成nil。如果想在dellac中调用delegate的某些函数时候,如果是weak会找不到对象,因为被置空了。所以用assign 。

使用weak也是为了防止发生循环引用。

这篇文章写得很清楚:http://blog.csdn.net/zxl2016/article/details/51908853

来自:http://www.jianshu.com/p/66b54e3a3960

http://www.cocoachina.com/bbs/read.php?tid=243250

最新文章

  1. 浏览器 私有属性&amp;内核
  2. 传智播客JavaWeb day06-jstl
  3. linux项目-之系统安装部署-cobbler
  4. css颜色表示
  5. 领域驱动设计(DDD)实现之路
  6. JAVA生成RSA非对称型加密的公钥和私钥(利用JAVA API)
  7. lispbox 安装运行.sh的时候出现 lispbox.sh: 2: lispbox.sh: Bad substitution
  8. leetcode面试准备:Implement Trie (Prefix Tree)
  9. UI层调用WCF服务实例(源码)
  10. [转]Traceroute网络排障实用指南(2)
  11. CentOS 6.5安装之后的网络配置
  12. react总结
  13. webstorm配置scss环境
  14. Html语言,使用&lt;a&gt;标签发送电子邮件
  15. 1.TwoSum
  16. UIWindow的windowLevel详解
  17. iOS开发系统类功能划分
  18. STM32F4XX高效驱动篇2 I2C
  19. 【HHHOJ】ZJOI2019模拟赛(十三)03.10 解题报告
  20. call()和apply()

热门文章

  1. 11 ORA-8102:Index Corruption解析
  2. Cygwin 技巧
  3. WinFrom控件双向绑定
  4. Command line is too long. Shorten command line for testMLDome1 or also for Application default configuration
  5. kafka之config/server.properties配置参数说明
  6. 【Luogu P2201】【JZOJ 3922】数列编辑器
  7. Codeforces 1262E Arson In Berland Forest(二维前缀和+二维差分+二分)
  8. 最小生成树: HDU1233还是畅通工程
  9. 模板 - 无旋Treap
  10. TMS320F28335——SCI串口