我的行为很奇怪。我的应用程序是使用UINavigationController
启动的。如果我按下视图控制器ANavigationController
,请返回并模拟内存警告,一切正常。
如果我以相同的方式推送同一个视图控制器(ANavigationController
),请返回并模拟内存警告 - 应用程序崩溃并显示错误:
[ANavigationController retain]
:发送给已解除分配的实例的消息。
在调试时,我已经打印了被推控制器的地址并解除了分配:
0xDA724F0
。–dealloc
的控制器的第二次推送 - 0xDA724F0
方法。0xFA720F0
。
[ANavigationController retain]
:发送到已解除分配的实例0xDA724F0
的消息。
我正在使用ARC。
运行Instruments以测试分配并启用NSZombie后,我在预期位置崩溃,但UIkit
库和负责的调用者报告的-1引用计数是:
+ [UIViewController _traverseViewControllerHierarchyWithDelayedReleaseArray:block:]
答案 0 :(得分:0)
我不确定这是问题的解决方案还是解决方法,但是为此特定文件禁用ARC可以解决此问题。当然,我必须自己去管理记忆。
我仍然会感谢任何问题的线索。
修改强>
找到了解决方案。请参阅我对其他问题的回答:[UINavigationController retain]: message sent to deallocated instance