У меня очень простой код для отображения модального контроллера (nextController является членом класса):
nextController = [[InstructionsScreen alloc] initWithNibName:@"InstructionsScreen" bundle:nil];
[self presentModalViewController:nextController animated:YES];
[nextController release];
А потом, когда контроллер должен скрыться:
[self dismissModalViewControllerAnimated:YES];
nextController = nil;
Все работает хорошо, как и ожидалось, но когда я запускаю инструмент Object Allocations, он показывает, что после закрытия модального контроллера выделенная память не освобождается. Это становится проблемой, потому что, когда я показываю несколько контроллеров, память заканчивается ...
Кто-нибудь может дать мне несколько подсказок? Clang не видит никаких проблем, поэтому я застреваю при достижении лимита памяти, потому что память уволенных контроллеров не будет освобождена.
РЕДАКТИРОВАТЬ: То, что я обнаружил до сих пор, это то, что это, кажется, утечка где-то в вещи Apple. Способ воспроизведения: XCode -> создать новый проект с шаблоном «Утилиты». Не пишите код самостоятельно. Просто создайте новое служебное приложение и запустите его с «Распределением объектов», выберите «Создано и еще жив». Теперь переверните модальный контроллер несколько раз - вы увидите, что выделенная память только увеличивается и увеличивается каждый раз, когда появляется модальный контроллер и когда он тоже исчезает ...