虽然更新Xcode 8之后各种bug,层出不穷,但是还是有新的亮点随着xcode 8一起出来的。这里介绍的是和我们调试(debug)息息相关的一个新功能 —-Debug Memory Graph调试内存图
下面的图详细的介绍了怎么调出来调试内存图
这个调试内存图有什么实际的作用呢?
举个经典的例子:
比如我们项目中因为各种原因导致的内存泄漏,原因可能是
1、NSTimer的使用不当
2、Block的循环引用
3、通知没有移除
这些内存泄漏导致的隐患不是马上就能发现的,很多程序员不能及时发现,这是很危险的,因为他不崩溃,也不报错,特殊情况下才能发现。
怎么看,我很懵逼,不知道怎么看,也不知道哪里泄露了?
很简单,对着项目的结构,看页面中存在的对象和他所属的class,看这个对象应不应该存在于这个内存图谱上。不应该出现的对象出现了,就内存泄露了。
举个例子,有一个展示我的好友列表的,类名class叫FriendViewController的页面,如果你Push进来后pop回去,打开内存图谱,按道理说这个FriendViewController应该被释放了,不应该出现在这个内存图里面,如果你还是看到了这个对象,那么就是内存泄露了,注意,可能项目中还有其他的地方用了这个VC,如果其他地方有用这个VC,你也要考虑进去,掰一掰手指数数是不是对象的个数对的上,所以要对照项目结构看图;如果按照iOS正常的流程,pop回去后这个VC被释放了,在内存图谱中就不应该,也找不到这个对象,这才是正常的,不存在内存泄露的情况。
调试内存图横空出世,解决了这一难题,为什么,因为你只需要点一下这个图标,就可以很直观的看到哪个VC还没有释放,这样的调试界面更人性化了,让我们苦逼的程序员用肉眼很直观的看到内存图,不是很赞
最后欢迎大家关注文明的iOS开发公众号:
方式1、搜索:“iOS开发by文明”
方式2、扫描下方二维码