gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 03:05:47 26 4
gpt4 key购买 nike

我有一些对象被传递到我的应用程序中很多不同的 View 和 Controller 。他们没有在我期望的时候被释放。显然某处有一个错误的强指针,但它可能所在的表面积非常大——这些对象被移入和移出许多不同的数据结构。

我在这里常用的解决方案是泄漏(报告没有循环)和分配(列出了该对象的 500 多个保留/释放)。有什么办法可以减少我在这里的搜索空间吗?

理想情况下 有一个工具可以让我输入一个指针并查看对该对象的所有强引用,而且我可能可以在大约 60 秒内查看列表并找到额外的引用.事实上,有这样一个工具——Object Graph instrument——但它不适用于 iOS 软件。

最佳答案

您需要分配工具。要跟踪单个对象类型,请启动应用程序。您需要在每个重要事件中创建一个 heapshot(我通常在您刚刚转换到 View Controller 或从 View Controller 转换时创建它们)。

一旦您获得了一个包含您感兴趣的对象的堆快照,那么您应该能够在堆快照的显示三角形下找到该对象类型。对于该类型的每个对象,您可以通过单击该对象行中的箭头来获取已发送到该对象的保留和释放的历史记录。

关于ios - ARC 中过度保留的调试策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14758556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com