Domanda

Ho un app in cui sto cercando di caricare in modo ricorsivo vista. Così ho un punto di vista (theViewController) che è in grado di visualizzare in dettaglio un'altra vista dello stesso tipo (theViewController). Ho la ricorsione lavorando bene ei pulsanti posteriori funzionano bene. Ma sto cercando di implementare una funzione che fa un certo lavoro e poi scarica la vista corrente.

In un altro posto nel mio codice ho il seguente:

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

È anche alla fine di una funzione che fa qualche lavoro per quella vista (theSecondViewController), ma si carica una diversa (theViewController).

Il mio problema è quando uso questo codice SAME nel mio theViewController si rompe. Beh, un po '. Penso che passa attraverso e fa apparire il controller spento, ma quando si tenta di ricaricare la vista (theViewController) a sinistra di esso (sopra di esso, comunque lo si voglia pensarci) muore. Una volta in una luna blu sarà sputare fuori:

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

Ma di solito solo muore senza errori (almeno credo che sia così ciò che questa roba è):

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.

Qualsiasi aiuto per comprendere il motivo per cui potrebbe morire in ricaricare una pagina sarebbe molto utile.

Aggiornamento: Se c'è stato un errore con il pennino non sarebbe un problema venire prima? Credo che sia corretto. Solo che non sono sicuro dove il codice sta andando dopo [navigationController popViewControllerAnimated: YES]; Ho pensato che sarebbe andare al viewDidLoad del prossimo vista. Ma ho un messaggio NSLog lì e la sua non presentandosi.

La navigazione che posso fare finora è questa:

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

Se il suo dritto e verso l'esterno funziona benissimo. Il codice precedente funziona in theSecondViewController ma non theViewController

È stato utile?

Soluzione 2

Il problema che ho avuto è stata che mi stava rilasciando NSManagedObjects quando non avrei dovuto essere.

Altri suggerimenti

Sei sicuro che i pennini sono configurati correttamente? Ho avuto questo accada a me e si è rivelato essere il pennino. Probabilmente, non ricordo esattamente che cosa è stato sbagliato con il pennino. È passato un po 'di tempo.

Ma questo è qualcosa da controllare. Inoltre, hai provato al punto se il codice e identificare dove si smette di funzionare? non sono sicuro la sua sarà possibile dare una risposta diretta sulla base di quanto previsto in precedenza ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top