J'utilise Xcode 4.5PR et iOS 6beta 2.
Je n'ai modifié aucun code, mon application génère une exception mentionnée dans le titre.
J'ai utilisé la fenêtre de débogage qui fonctionnait à l'origine de cette exception, mais
0x38dda960: Push {r4, r5, r6, r7, lr}
Comment puis-je trouver un problème? Comment puis-je le réparer?
Si vous ne changez rien, cela pourrait simplement être lié à la version bêta d'iOS 6 telle qu'elle est actuellement.
1) Cela pourrait être le simulateur que vous avez choisi pour construire le même code pour:
Si vous n'avez modifié aucun code source, assurez-vous que votre schéma pointe toujours sur le même simulateur sur lequel il a travaillé en dernier. (Par exemple, essayer de présenter un contrôleur de vue modale (presentModalViewController:
), tout en oubliant d'utiliser conditionnellement un popover pour iPad, pourrait être la cause de ce problème.)
2) Si la trace de la pile et la console ne sont pas utiles:
Parfois, les seules choses dans la pile sont main
et UIApplicationMain
, ce qui rend difficile la recherche de ce qui ne va pas dans votre propre source. Ceci est probablement le signe que quelque chose échoue dans une méthode d'infrastructure native que vous appelez ou que vous faites appeler.
Si aucune méthode ou aucun objet spécifique n'est répertorié dans la console et que le suivi de la pile ne pointe vers aucune méthode de vos propres classes, essayez de restreindre l'exécution au plus près du point où l'exception est levée. Lorsque je choisis des points d'arrêt dans l'obscurité, j'ai tendance à utiliser une approche de recherche binaire, à choisir un point pivot, à monter et descendre dans l'ordre d'exécution et à choisir un nouveau point "à mi-chemin" si nécessaire.
Définissez un point d'arrêt sur les exceptions C++ pour rechercher où il est lancé.
Parfois, cela peut arriver si vous manquez simplement d'une bibliothèque - je faisais un exemple d'application rapide avec MKMapView et cette erreur se produisait avant d'ajouter MapKit.framework à mon projet.
Une raison pour que cette erreur se produise ...
J'ai eu cette erreur après avoir changé le nom de certaines variables iboutlet dans mes fichiers .h et .m mais pas dans les liens du storyboard pour ces variables. Après avoir refait les liens, tout a fonctionné à nouveau. J'espère que cela peut aider certains d'entre vous.
Cette exception peut se produire pour diverses raisons. La meilleure façon de trouver la cause exacte est de regarder console
. Vous y trouverez un texte comme celui-ci:
*** lorem ipsum lorem ipsum lorem ipsum
*** First throw call stack: (0x1d16012 0x16c3e7e 0xa4ef96 0x607704 0x6079a2 0x606876 0x617cb5 0x618beb 0x60a698 0x2b81df9 0x2b81ad0 0x1c8bbf5 0x1c8b962 0x1cbcbb6 0x1cbbf44 0x1cbbe1b 0x60617a 0x607ffc 0x1d1d 0x1c45) libc++abi.dylib: terminate called throwing an exception
Ici, le texte lorem ipsum
avant First throw call stack
indiquera le problème exact pour lequel une exception est levée. Résolvez ce problème et vous êtes prêt à partir.
Cela m’arrivait et je suis parti quand j’ai mis -ObjC dans "Autres drapeaux de lieur"
Cela se produit ici lorsque je pose une contrainte sur un objet i.o.s. l'assigner à la superview
Cette erreur survient généralement lorsque vous supprimez manuellement votre story-board de votre projet et réutilisez votre viewcontroller pour qu'il soit utilisé sans story-board. Assurez-vous que votre contrôleur de vue est ajouté au contrôleur de vue racine de votre fenêtre dans votre AppDelegate et que l'initialisation du contrôleur de vue ne porte pas de nom de nib (puisque vous l'auriez supprimé lors de la suppression de votre storyboard) - ET LE PLUS IMPORTANT de supprimer les lignes de votre liste fichier indiquant à l'application qu'un fichier de story-board doit exister, tel que "Nom de base du fichier de story-board (iPad)" ou "Nom de base du fichier de story-board (iPhone)". Une fois que ceux-ci auront disparu, votre application cessera de chercher un scénarimage et vous serez comme un golden retriever!
Je me suis retrouvé coincé pendant un bon moment, puis j'ai découvert que je pouvais obtenir la pile de trace EXACT de l'exception par définition d'un point d'arrêt pour toutes les exceptions.
Un problème de temps se produit lorsque l'utilisateur importe n'importe quelle structure. Importez donc également cette structure dans un fichier .pch dans le dossier de ressources de l'application.
Assurez-vous que vous utilisez la version de prévisualisation du développeur (4.5) de xcode et que vous n'avez pas ouvert la version de publication (4.3.3) et que la version bêta d'iOS est identique à celle de. impossible d'exécuter l'application sur iOS 6 bêta après la mise à jour des paramètres du projet sur iOS 6, l'application ne s'exécutera plus sur les appareils iOS 5.xx les uns sur les autres.