Je semble être dealloc'ing quelque chose comme la barre d'onglets lui-même, contrôleur de navigation, ou ???, et cela se produit quand je vais à un contrôleur de vue particulier, puis appuyez sur la barre d'onglet à un onglet spécifique (par exemple, si je frappe la onglet du milieu, de 3 onglets, pas de problème, mais si je frappe l'onglet de droite, je reçois l'accident). Mon programme est essentiellement complète et j'ai une base de code assez grand à ce moment. Quelqu'un at-il des suggestions pour le débogage - j'ai attendu jusqu'à maintenant pour y travailler. Mon sens, est de regarder les routines de dealloc et les rejets dans le code voisin. Toute chose moins « manuel » vous pouvez suggérer? Merci!
Bar Tab Edition: - [hachage UILayoutContainerView]: message envoyé à l'instance désallouées
Sans savoir plus, voici comment j'irais à ce sujet.
Dans la visionneuse de journal, tapez backtrace après l'exception se produit dans gdb. Si tout va bien, cela vous donnera la ligne exacte qui indique quel objet est free'd trop de fois.
Recherchez les références à cet objet et voir si vous pouvez trouver la version inutile, autorelease, etc. par l'inspection. Vous n'êtes pas libérer / quoi que ce soit AutoRelease que votre chemin d'exécution ne possède pas (via alloc).
Vous pouvez avoir un peu de chance imprimer retenons compte pour cet objet (en envoyant le message retainCount à l'objet incriminé). Bien que la documentation du développeur suggère fortement que ce n'a pas de sens et non fructueux, je l'ai trouvé utile à l'occasion de me aider à réduire quand je l'ai libéré quelque chose par hasard.













