Вопрос

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

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

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

Он также находится в конце функции, которая выполняет некоторую работу для этого представления (theSecondViewController), но загружает другое представление (theViewController).

Моя проблема в том, что когда я использую этот ЖЕ код в моем theViewController, он выходит из строя.Ну, вроде того.Я думаю, что это проходит и действительно выводит контроллер из строя, но когда он пытается перезагрузить view (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 

Если он прямо входит и прямо выходит, это работает нормально.Приведенный выше код работает в theSecondViewController, но не в theViewController

Это было полезно?

Решение 2

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

Другие советы

Вы уверены, что наконечники настроены правильно? Со мной такое случалось, и оказалось, что это наконечник.Возможно, так оно и есть, я не помню точно, что было не так с пером.Это было давненько.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top