今天在调试程序时,遇到了奇怪的错误。我从主页跳进(push)一个ViewController时一切正常,但是返回主页(pop)时却crash了,直接跳进了main.m(EXC_BAD_ACCESS(code=1,address=0x20)),却没有任何错误日志。

通常这样的崩溃出现,原因一般就是:调用了已经释放的内存空间,或者说重复释放了某个地址空间。开启Zombie Objects模式。

然后我们再运行一次,重复最开始的步骤(push,pop),这次输出了错误信息。

[xxxViewController retian] message sent to deallocated instance xxxxxxx

在这里我参考了smking大佬的一篇文章(未经过大佬的允许,不敢转载或贴出传送门),原因是因为在一个UIViewController释放之后,又再次向这个VC调用了某些请求,在VC中设置了xx.delegate = self; 而VC释放后,xx没有释放,xx的回调方法还在调用delegate即VC,所以crash发生了。

解决方法是,调用当前VC的-dealloc方法,在里面设置 xx.delegate = nil;就可以解决问题。

最新文章

  1. firefox 使用svg的image标签无法显示图片
  2. 刷新各ifream当前页,下拉项改变触发事件js,给选中项加背景色js
  3. [WPF]设置背景色
  4. ios svn无法连接xp或者win7系统svn的解决方法
  5. 策略设计模式与c语言中的函数指针
  6. [深入浅出WP8.1(Runtime)]Toast通知
  7. Web API 入门系列 - RESTful API 设计指南
  8. 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。
  9. spring+hibernate+struts整合(2)
  10. Word 2016 test
  11. asp.net 后台验证成功(弹出对话框)并跳转?不能实现
  12. flask +gevent+nginx+Gunicorn+supervisor部署flask应用
  13. python 将本地目录暴露为http服务
  14. IDEA 根据 Mysql 自动生成
  15. vue浏览器滚动加载更多
  16. 什么是js的严格模式
  17. win7右键菜单调整顺序
  18. UOJ#424 【集训队作业2018】count
  19. 高效的数据压缩编码方式 Protobuf
  20. No style sheet with given id found错误

热门文章

  1. multiprocessing join与lock区别
  2. js---post与get请求的区别
  3. 前端PS切图技巧
  4. Selenium WebDriver-模拟鼠标双击某个元素
  5. pip 设置国内源提高速度
  6. Wannafly挑战赛5
  7. 为什么在header 和 session 之前不能有输出
  8. HDU——1286找新朋友(欧拉函数+质数打表)
  9. python 粘包问题及解决方法
  10. net7:Web用户控件ascx的使用及其动态加载