Утечка памяти при нажатии UIViewController

Каждый раз, когда я нажимаю новый контроллер просмотра, он добавляет около 3 МБ. TestVC — это совершенно новый VC с одним методом для отправки новой версии VC.

 UIViewController *vc = [[TestVC alloc] initWithNibName:nibName bundle:nil]; 
    [self.navigationController pushViewController:vc animated:YES];
    [vc release];

Когда я использую popviewController, он не освобождает память (наблюдая за монитором активности).

[self.navigationController popViewControllerAnimated: YES];

Итак, когда я добавляю навигацию по приложению (около 60 разных страниц), память продолжает накапливаться. Нужно ли initWithNibName что-то особенное. Когда я открываю, нужно ли как-то отпускать перо?


person smcdrc    schedule 14.03.2011    source источник
comment
Нет ничего плохого в том, что ты там делаешь. Вы уверены, что проблема не связана с чем-то другим?   -  person David    schedule 14.03.2011
comment
Как выглядит TestVC? Вы освобождаете все свое имущество? Там нет других утечек памяти? Как говорит Дэвид, нет ничего плохого в том, как вы добавляете/удаляете контроллеры представления.   -  person Stephen Darlington    schedule 14.03.2011
comment
TestVC — это пустой VC, за исключением одного IBAction для вызова кода pushViewController. Файл XIB содержит одну кнопку и фоновое изображение.   -  person smcdrc    schedule 15.03.2011


Ответы (1)


Наиболее вероятной проблемой является сбой release чего-то в -[TestVC dealloc]. Я бы сначала оценил этот метод осмотром. Если вы не можете найти проблему, используйте инструмент «Утечки» в «Инструментах», чтобы определить, какая конкретная вещь чрезмерно сохраняется. Если Leaks не находит его, используйте инструмент heapshot в «Инструментах», чтобы увидеть, что выделено. С чем-то таким большим его должно быть легко найти. Краткий обзор использования Heapshot приведен на странице Использование Ваш хлеб.

person Rob Napier    schedule 14.03.2011
comment
Использование heapshots было бы первым, что я сделал бы при диагностике этого. См. также статью Билла Бамгарнера об этом здесь: friday.com/bbum/2010/10/17/ - person Brad Larson; 14.03.2011