回顾:
这几天在修改公司项目的时候,发现一个问题,重新登录之后,重置了RootViewController之后,反复20多次,发现手机越来越热,于是看了下内存飙了很高,打开Xcode查看图层,突然发现之前页面的View依然在window上。
效果图如下:
于是将 首页控制器 打印了dealloc ,发现首页controller的dealloc在每次 window 执行setRootViewController 时候都执行了,也就是说controller是被正确释放了。
所以换了一种思路:controller被释放了,可能view被 addSubview 造成强引用了?为了验证这个想法,我取了一个没有被释放掉的view的内存地址
使用内存视图管理工具(Xcode黑科技)
使用内存地址找到了这个view,发现这个view只有window强引用着。。那好吧。。看来不是引用计数的问题。
于是去代码里找问题,因为代码都是外包公司写的,质量实在不敢恭维,只能一行行的开始review代码。终于发现了问题,原来是在登录的时候 ,dismiss掉登录页面之前,将window的Root重置了。。
在此真的想吐槽一下,于是记录了这次采坑经历。。。。。