1

当堆栈跟踪未链接回源代码时,我希望有人可以帮助如何将消息跟踪到 [CALayer] 的解除分配实例。

我在 XCode 的诊断中启用了 Zombie Objects 并通过 Zombie 分析运行它。

XCode 中的响应是“2013-01-27 22:37:31.506 AdventureA[9695:11303] *** -[CALayer release]: message sent to deallocated instance 0x757b530”

仪器的反应是: 乐器 - 僵尸

我完全不知道如何找出导致问题的原因;我已经看了好几个小时的源代码......

4

2 回答 2

1

好的 - 找到了。有一个 UIButton(当然,它继承自 UIView)被实例化为 buttonWithType 并且我正在释放它。哦。

如此明显的事情变得如此痛苦的原因(对于那些可能不得不处理同样事情的人);问题是事后看来这一切听起来都很容易:

  • 我仍然不知道为什么没有堆栈跟踪使我能够跟踪问题发生的位置。
  • 由于僵尸输出中没有可用的源代码,我被指示认为这是“在幕后”发生的事情
  • 当我应该查看受取消分配影响的前一个视图时,我正在查看错误发生时的视图。
  • 我从今天早上开始就在编码...
于 2013-01-27T13:42:15.200 回答
0

注意调用者列表中对 [UIView dealloc] 的两次调用。查看 UIView 对象的分配。你似乎有一个奇怪的生命周期。

于 2013-01-27T12:36:29.453 回答