我有奇怪的行为。我的应用程序正在使用UINavigationController
启动。如果我推送视图控制器ANavigationController
,请返回并模拟内存警告一切正常。
如果我以相同的方式推送相同的视图控制器(ANavigationController
),请返回并模拟内存警告-应用程序因错误而崩溃:
[ANavigationController retain]
:发送到已释放实例的消息。
在调试此代码时,我已打印了推入控制器的地址并释放了一个地址:
0xDA724F0
。 –dealloc
方法0xDA724F0
。 0xFA720F0
。 [ANavigationController retain]
:发送到已释放实例的消息0xDA724F0
。 为什么释放的控制器(在步骤4中)完全收到内存警告消息?
编辑
我正在使用ARC。
编辑
运行Instruments测试分配并启用NSZombie后,我在预期的位置崩溃了,但是
UIkit
库和负责的Caller报告的-1参考计数为:+ [UIViewController _traverseViewControllerHierarchyWithDelayedReleaseArray:block:]
最佳答案
我不确定这是问题的解决方案还是解决方法,但是为该特定文件禁用ARC可以解决此问题。当然,我必须自己去管理记忆。
尽管如此,对于任何问题的线索,我仍将不胜感激。
编辑
找到了解决方案。请查看我对其他问题的回答:[UINavigationController retain]: message sent to deallocated instance