Не забывайте вызов super в viewDidUnload. Вы также должны получить доступ к вашей переменной экземпляра через ее установщик, чтобы установить ее равной nil в viewDidUnload. В dealloc просто освободите переменную экземпляра напрямую.
- (void)viewDidUnload {
[super viewDidUnload];
NSLog(@"viewDidUnload being called");
self.sushiTypes = nil;
}
- (void)dealloc {
[_sushiTypes release];
NSLog(@"dealloc being called");
[super dealloc];
}
Я не думаю, что это является причиной ваших проблем с памятью. Есть ли в вашем контроллере модального представления какие-либо другие переменные экземпляра или IBOutlets?
Чтобы помочь в дальнейшей отладке, попробуйте использовать инструменты. Из Xcode, перейдите Product> Profile, затем выберите шаблон Allocations, когда откроются инструменты. Затем откройте и закройте ваш модальный контроллер несколько раз, и проверьте ваши утечки и распределения. Если распределение увеличивается каждый раз, когда вы представляете / отклоняете, попробуйте нажать кнопку «Отметить кучу» до и после каждого представления / отклонения. Затем вы можете проверить объекты, которые выделяются и не освобождаются в каждом цикле.