2009-06-29 1 views
0

У меня есть приложение, где я пытаюсь рекурсивно загружать представления. Таким образом, у меня есть один вид (theViewController), который способен переходить к другому виду того же типа (theViewController). У меня есть рекурсия, работающая нормально, и кнопки на кнопках работают нормально. Но я пытаюсь реализовать функцию, которая выполняет некоторую работу, а затем выгружает текущее представление.UINavigationController - same viewController

В другом месте в моем коде у меня есть следующий:

MyAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
UINavigationController *navigationController = [delegate navigationController]; 
[navigationController popViewControllerAnimated:YES]; 

Также в конце функции, которая делает некоторую работу для этой точки зрения (theSecondViewController), но он загружает другую точку зрения (theViewController).

Моя проблема в том, что я использую этот САМОЙ код в моем элементе управленияViewView, который он ломает. Ну, вроде. Я думаю, что это происходит, и отключает контроллер, но когда он пытается перезагрузить вид (theViewController) слева от него (над ним, однако вы хотите об этом подумать), он умирает. После того, как в голубой луны она будет выплевывать:

malloc: *** error for object 0xfb9640: double free 
*** set a breakpoint in malloc_error_break to debug 

Но обычно он просто умирает без ошибок (по крайней мере, я думаю, вот что этот материал):

GNU gdb 6.3.50-20050815 (Apple version gdb-966) (Tue Mar 10 02:43:13 UTC 2009) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "i386-apple-darwin".sharedlibrary apply-load-rules all 
Attaching to process 15739. 

Любая помощь в понимании того, почему это могло бы умереть при перезагрузке страницы было бы очень полезно.

Обновление: Если возникла ошибка с наконечником, проблема не возникла бы раньше? Я считаю, что это правильно. Я просто не знаю, куда будет идти код после [navigationController popViewControllerAnimated: YES]; Я думал, что он перейдет к viewDidLoad следующего вида. Но у меня есть сообщение NSLog, и оно не появляется.

Навигационная я могу сделать до сих пор это:

userViewController -> theViewController -> ... -> theViewController -> theSecondViewController 

Если его прямо и прямо он работает отлично. Код выше работает вSecondViewController, но не theViewController

ответ

0

Проблема была в том, что я выпускал NSManagedObjects, когда я не должен был быть.

0

Вы уверены, что наконечники настроены правильно? У меня это случилось со мной, и оказалось, что это нить. Наверное, я не помню точно, что случилось с ним. Прошло много времени.

Но это то, что нужно проверить. Кроме того, вы пытались выполнить код и определить, где он перестает работать? Я не уверен, что можно будет дать прямой ответ на основании того, что предусмотрено выше ...