Помощь - бесконечный цикл освобождения - PullRequest
0 голосов
/ 16 августа 2011

Я пытаюсь укрепить свой код, чтобы избежать сбоев в памяти. Я застрял на одном, в частности, что происходит в соответствии с этими шагами:

  1. Запустить приложение.
  2. Нажмите кнопку, которая представляет модальный viewcontroller.
  3. Имитация предупреждения о памяти.

С помощью операторов NSLog везде, я вижу, что начальный (представляющий) viewcontroller получает предупреждение о памяти, затем его метод dealloc вызывается снова и снова, пока не произойдет сбой. В целях отладки в моих методах didReceiveMemoryWarning, viewDidUnload или dealloc нет ничего, кроме операторов NSLog.

Как это звучит? Может быть, у меня есть какая-то переменная экземпляра, которая имеет указатель на контроллер представления? Мне просто нужно общее предположение о том, что может быть причиной этого. Не могу опубликовать весь мой код контроллера представления, который работает с тысячами строк.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Вы указали в своем последнем комментарии, что, как вы думаете, вы исправили случай чрезмерного освобождения контроллера представления, но я не уверен в этом.Чрезмерное освобождение контроллера вида все равно вызовет dealloc только один раз.

Гораздо более вероятная причина " метода dealloc, вызываемого снова и снова, пока сбой " не вызывает [self dealloc]; в вашем dealloc методе, а не соответствующий [super dealloc];.Проверьте, правильно ли ваш код в этом отношении, может быть бесконечная рекурсия, вызывающая у вас проблемы.:)

0 голосов
/ 16 августа 2011

Вы перезаписали свой метод ViewControllers release?Однажды я сделал это вместо перезаписи dealloc.Поздно ночью кодирование FTL.

...