关于内存泄漏问题,一般情况下就是控制器或者视图没有正常的释放引起的,我们通常可以通过dealloc方法来检查一个控制器或者视图是否释放。  对于一个控制器或者视图没有释放,其实也就是还有强引用引用着这个控制器或者视图view,所以我们发现一个控制器或者一个视图没有“正常”的释放,就证明他还存在其他的强引用指针,那么什么情况下会造成内存泄漏或者说一个视图、控制器没有正常的释放呢?(由于我在工作中,由于接受他人的工作,偶然间发现整个程序的视图控制很多都是没有正常的释放的,多么可怕,于是在找原因的总结)主要总结为以下三点:    

  1>Block的使用不正确,可能造成了循环引用

  2>程序中可能有一个单例,这个单例可能拥有着这个控制器或者View

  3>控制器或者View添加到了一个数组中,数组一直存在于内存中

我的程序中就是由于一个下载单例,而这个单例拥有控制器作为他的代理,并且添加到了数组中。由于是接手项目所以没有注意到这点。。。。

言而总之,就是有强引用引用着视图控制器或者view,所以下次小伙伴们遇到同样问题可以参考我以上提到的三点找一找。

最新文章

  1. Vertica 7.1安装最佳实践(RHEL6.4)
  2. springmvc+mybatis事务回滚
  3. swift 之 闭包
  4. 给mysql数据库插入当前时间
  5. Spring MVC前台使用html页面作为视图,配置静态资源后Controller控制器不起作用的解决办法
  6. vi-11
  7. web文件上传的实现
  8. dom 筛选器
  9. C++拾遗(八)类——概念、定义与实现
  10. 360WIFI下使用Fiddler抓取手机APP流量
  11. sqlclr返回数据集案例
  12. 修改Delphi 10.1.2 edit控件在android的复制、剪切和粘贴样式
  13. iOS开发富文本制作 图片和文字/NSMutableParagraphStyle/NSMutableAttributedString
  14. [Scala] 了解 协变 与 逆变
  15. java实例化对象
  16. Python获取当前日期和日期差计算
  17. Mesos初体验-Mesos优势
  18. 在notepad++中修改换行符
  19. GUI的最终选择Tkinter模块初级篇
  20. .NET 中的 async/await 异步编程

热门文章

  1. viewpager 设置预加载项
  2. Part 1:请求与响应--Django从入门到精通系列教程
  3. 【转】sed 的参数
  4. html的标签
  5. viim命令行模式查找替换
  6. python中math模块常用的方法整理
  7. (转)Elasticsearch 5 Ik+pinyin分词配置详解
  8. Hadoop学习笔记二
  9. [快速傅立叶变换&快速傅里叶变换]【旧 手写笔记】
  10. POJ 3525 Most Distant Point from the Sea [半平面交 二分]