【发布时间】:2011-10-27 19:22:54
【问题描述】:
我正在尝试强化我的代码以避免低内存崩溃。我特别卡在一个,根据这些步骤发生:
- 启动应用程序。
- 点击显示模态视图控制器的按钮。
- 模拟内存警告。
通过随处可见的 NSLog 语句,我看到初始(呈现)视图控制器收到内存警告,然后它的 dealloc 方法被一遍又一遍地调用,直到崩溃。出于调试目的,除了 NSLog 语句之外,我的 didReceiveMemoryWarning、viewDidUnload 或 dealloc 方法中没有任何内容。
这听起来像什么?也许我有一些保留的实例变量,它有一个指向视图控制器的指针?我只需要对可能导致这种情况的原因进行一般猜测。无法发布运行到 1000 行的整个视图控制器代码。
谢谢。
【问题讨论】:
-
嗯,你有没有看过你的视图控制器上的保留计数,当它命中dealloc时。我想它应该是 1。另一个想法是你有一个代表保留控制器,这两者之间有一个保留循环吗?
-
你能尝试用新项目和简单的视图控制器来重现它吗?
-
是的,我想我找到了问题所在。在我将视图添加到主窗口之后,我在我的 appdelegate 中发布了视图控制器。愚蠢的。请随意回答这个问题,我会接受。
标签: objective-c ios memory-management uiviewcontroller dealloc