ios 关于重置RootViewController之后,View没有释放的问题。

回顾:

        这几天在修改公司项目的时候,发现一个问题,重新登录之后,重置了RootViewController之后,反复20多次,发现手机越来越热,于是看了下内存飙了很高,打开Xcode查看图层,突然发现之前页面的View依然在window上。 

效果图如下:


于是将 首页控制器  打印了dealloc  ,发现首页controller的dealloc在每次 window 执行setRootViewController 时候都执行了,也就是说controller是被正确释放了。

所以换了一种思路:controller被释放了,可能view被  addSubview   造成强引用了?为了验证这个想法,我取了一个没有被释放掉的view的内存地址


使用内存视图管理工具(Xcode黑科技)


使用内存地址找到了这个view,发现这个view只有window强引用着。。那好吧。。看来不是引用计数的问题。

于是去代码里找问题,因为代码都是外包公司写的,质量实在不敢恭维,只能一行行的开始review代码。终于发现了问题,原来是在登录的时候 ,dismiss掉登录页面之前,将window的Root重置了。。

在此真的想吐槽一下,于是记录了这次采坑经历。。。。。

推荐阅读更多精彩内容

  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 3,325评论 1 22
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 3,125评论 0 7
  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    江湖人称_赫大侠阅读 1,037评论 2 50
  • 最近一朋友正准备跳槽,就从各处搜索整理一些基础,便于朋友复习,也便于自己复习查看. 1. 回答person的ret...
    smile丽语阅读 845评论 0 7
  • 既然不能选择生活的环境,但可以选择面对生活的态度;既然哭不能解决问题,为何不笑对人生呢? 我的一个叔叔,两岁多的时...
    米莉记阅读 180评论 2 4