iPhone: утечка памяти в контроллере модального представления

Я представляю modalViewController. После того, как я отклоняю модальный контроллер представления с помощью:

- (void)dismissModalViewControllerAnimated:(BOOL)animated

.. вид все еще в памяти. Как мне его отклонить, чтобы он использовал память?

Спасибо.


person burki    schedule 25.04.2010    source источник
comment
только объект с сохраненным счетчиком = 1 вызывает его освобождение при освобождении.   -  person Naveen Shan    schedule 04.07.2011


Ответы (4)


Когда вы представляете свой контроллер модального представления, вам необходимо его выпустить.

person Paul Lynch    schedule 25.04.2010
comment
Конечно. Прежде чем я представлю modalViewController, я сначала выделяю UINavigationController и UIViewController, добавляю UIViewController в UINavigationController как rootViewController, затем представляю modalViewController и выпускаю UINavigationController и UIViewController. Что еще делать ?? - person burki; 25.04.2010
comment
Убедитесь, что все это исключено из вашего кода. Удерживая любой из них, вы будете удерживать контроллер. Проверьте другие значения, которые вы, возможно, передали, но не выпустили. - person Paul Lynch; 25.04.2010

У меня такая же проблема. Я лишь временно сохраняю ViewController, пока не вызову presentModalViewController, а затем освобожу выделение. Но после dismissModalViewControllerAnimated я так и не получил освобождение ViewController.

Если я добавлю самовыпуск из ViewController, я получу это после того, как управление вернется в цикл событий:

Программа получила сигнал: «EXC_BAD_ACCESS». objc_msgSend

person paiego    schedule 29.10.2010
comment
только объект с сохраненным счетчиком = 1 вызывает его освобождение при освобождении. - person Naveen Shan; 04.07.2011

Такая же проблема. У меня есть NavigationController, который я представляю модально, а в качестве rootController этого NavigationController у меня есть простой объект ViewController. Редкая ситуация, когда я запускаю свое приложение для инструментов с использованием Allocations и после увольнения modalController, в этом случае NavigationController, NavigationController уходит, но rootController остается в памяти, а память растет и увеличивается. (примечание: утечка в инструментах не показывает утечки, и приложение было запущено на устройстве, а не на симуляторе).

person tico    schedule 08.11.2010
comment
вы выпускаете контроллер представления после того, как он был добавлен как rootviewcontroller панели навигации? и поместите все объекты IB в ноль во viewDidUnload. и все еще остается ваша проблема. позвольте нам увидеть ваш код. - person Naveen Shan; 04.07.2011

когда вы представляете контроллер модального представления, вы обязательно будете выделять его, поэтому существует правило, когда вы выделяете его, вам также необходимо освободить его, поэтому, пожалуйста, освободите контроллер представления, который вы представляете в контроллере modalview.

person Kasaname    schedule 11.10.2012