ios – 在ARC中过度保留的调试策略?

我有一些对象在我的应用程序中传递给了很多不同的视图和控制器.当我期望它们时,它们不会被解除分配.显然,某处有一个错误的强指针,但它可能存在的表面区域非常大 – 这些对象被移入和移出许多不同的数据结构.

我通常的解决方案是Leaks(报告没有循环)和Allocations(列出该对象的500个保留/释放).有没有办法减少我的搜索空间?

理想情况下会有一个工具可以让我输入一个指针并查看对象的所有强引用,我可能会注意该列表并在大约60秒内找到额外的引用.事实上,有一种工具 – 对象图表工具 – 但它不适用于iOS软件.

解决方法

你想要Allocations工具.要跟踪单个对象类型,请启动该应用程序.您需要在每个重要事件中创建一个快照(我通常在您刚刚转换到视图控制器或从视图控制器转换时创建它们).

一旦你有一个应该有你想要跟踪的对象的快照,那么你应该能够在快照的显示三角形下找到该对象类型.对于该类型的每个对象,您可以通过单击该对象行中的箭头来获取已发送到该对象的保留和释放的历史记录.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...