【问题标题】:Dealing with strong reference cycles in Xcode 6.4在 Xcode 6.4 中处理强引用循环
【发布时间】:2015-11-08 13:13:04
【问题描述】:

最近,我收到了一个用 Swift 1.2 编写的又大又丑的遗留代码,其中充满了单例和相互引用的管理器。我的任务之一是清理它并到达初始主屏幕 - 当所有管理器、视图、单例都停止并为零时。

我目前跟踪泄漏的方法很简单。在每一个有意义的类中,我都在计算instancesCount,这是一个静态变量,在init 中增加并在反初始化过程中减少。当然,在拥有那些所有成熟工具的 21 世纪,查找分配泄漏并不是一个聪明的主意,但是……我不知道为什么,Xcode 工具并不是很有帮助。根据我的方法,他们表示一切都很好的麻烦。例如,仪器说我的一位经理从未取消初始化 - 这不是真的,因为instanceCount初始主屏幕中对于该特定经理为 0。很奇怪。

无论如何,所有这一切都可能以问题结束:如何检测我的实例无法取消初始化的原因以及谁继续引用它

逐行阅读代码并找到保留周期的位置是毫无意义的,因为代码库非常复杂,而且时间总是有限的。

【问题讨论】:

  • 天哪,我希望有一天能禁止单身人士

标签: ios xcode automatic-ref-counting instruments retain-cycle


【解决方案1】:

使用带有分配跟踪模板的工具。它跟踪每个对象的引用计数变化,并显示它何时增加和何时减少。此处无需手动监控。

【讨论】:

    猜你喜欢
    • 2016-09-04
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多