帮助 - 无尽的dealloc循环

时间:2011-08-16 06:20:07

标签: objective-c ios memory-management uiviewcontroller dealloc

我正在努力强化我的代码,以避免内存崩溃。我特别坚持一个,根据这些步骤发生:

  1. 启动应用
  2. 点按呈现模态viewcontroller的按钮。
  3. 模拟记忆警告。
  4. 通过各处的NSLog语句,我看到初始(呈现)视图控制器收到内存警告,然后反复调用其dealloc方法直到崩溃。出于调试的目的,除了NSLog语句之外,我的didReceiveMemoryWarning,viewDidUnload或dealloc方法中没有任何内容。

    这听起来像什么?也许我有一些保留的实例变量,它有一个指向视图控制器的指针?我只需要对可能导致这种情况的原因进行一般猜测。无法发布贯穿1000行的整个视图控制器代码。

    感谢。

2 个答案:

答案 0 :(得分:2)

您在最新评论中指出,您认为您修复了过度释放视图控制器的情况,但我不太确定。过度释放视图控制器仍会导致dealloc仅被调用一次。

更有可能导致“ dealloc方法反复调用直到崩溃”在[self dealloc];方法中调用dealloc,而不是相应的{{1 }}。在这方面检查您的代码是否正确,可能会有无限递归导致您出现问题。 :)

答案 1 :(得分:0)

您是否覆盖了ViewControllers release方法?我曾经这样做而不是覆盖dealloc。深夜编码FTL。