UINavigationController утечка / понимание popViewController - PullRequest
2 голосов
/ 01 мая 2010

У меня есть контроллер навигации и табличное представление. Когда кто-то нажимает на табличное представление, я делаю следующее:

MyViewController *myViewController = [[MyViewController alloc] initWithImage:image];
[image release];
[self.navigationController pushViewController:myViewController animated:YES];
[myViewController release];

myViewController сохранит изображение.

Теперь, если я перехожу вперед и назад в NavigationController, я получаю утечку, потому что каждый раз создается новый MyViewController и, очевидно, popViewController не выпускает myViewController.

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

Заранее спасибо за помощь,

Ответы [ 2 ]

1 голос
/ 01 мая 2010

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

0 голосов
/ 01 мая 2010

Я обычно объявляю viewController один раз в классе, выделяю в init и нажимаю при необходимости. Затем в контроллере push-представления я настраиваю вид в viewWillAppear:

...