Question

J'ai une application dans laquelle j'essaie de charger des vues de manière récursive.J'ai donc une vue (theViewController) qui est capable d'explorer une autre vue du même type (theViewController).La récursivité fonctionne bien et les boutons de retour fonctionnent très bien.Mais j'essaie d'implémenter une fonction qui effectue un certain travail puis décharge la vue actuelle.

A un autre endroit de mon code, j'ai ce qui suit :

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

C'est également à la fin d'une fonction qui effectue un certain travail pour cette vue (theSecondViewController), mais elle charge une vue différente (theViewController).

Mon problème est que lorsque j'utilise ce MÊME code dans mon theViewController, il tombe en panne.Bon type de.Je pense qu'il passe et fait sortir le contrôleur, mais quand il essaie de recharger la vue (theViewController) à sa gauche (au-dessus, quelle que soit la manière dont vous voulez y penser), il meurt.Une fois dans une lune bleue, il crachera :

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

Mais généralement, il meurt sans erreurs (du moins, je pense que c'est ce que sont ces choses) :

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.

Toute aide pour comprendre pourquoi il pourrait mourir lors du rechargement d'une page serait très utile.

Mise à jour:S'il y avait une erreur avec la plume, un problème ne surviendrait-il pas plus tôt ?Je crois que c'est correct.Je ne sais tout simplement pas où va le code après [navigationController popViewControllerAnimated:YES];Je pensais que cela irait au viewDidLoad de la vue suivante.Mais j'ai un message NSLog et il n'apparaît pas.

La navigation que je peux faire jusqu'à présent est la suivante :

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

Si c'est directement entrant et sortant, cela fonctionne bien.Le code ci-dessus fonctionne dans theSecondViewController mais pas dans theViewController

Était-ce utile?

La solution 2

Le problème que j'avais était que je publiais NSManagedObjects alors que je n'aurais pas dû le faire.

Autres conseils

Êtes-vous sûr que les plumes sont correctement configurées ? Cela m'est arrivé et il s'est avéré que c'était la plume.C'est probablement le cas, je ne me souviens pas exactement de ce qui n'allait pas avec la plume.Cela fait longtemps.

Mais c'est quelque chose à vérifier.En outre, avez-vous essayé de parcourir le code et d'identifier où il cesse de fonctionner ? Je ne suis pas sûr qu'il soit possible de donner une réponse directe sur la base de ce qui est fourni ci-dessus...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top