Comment localiser la cause de SIGABRT

Je montre le code à ce problème à des fins d’exemple, mais ma question est vraiment: comment est-ce que je suis supposé dépister et comprendre les erreurs SIGABRT? J’ai lu cette question: sigabrt sans message d’erreur , mais je ne pense pas que cela concerne mon problème.

L’exemple que je vais montrer ci-dessous n’est évidemment pas un problème de xib, et les temps passés à obtenir SIGABRT semblaient davantage être liés à des exceptions non gérées. J’ai essayé d’utiliser bt de GDB mais cela n’aide pas. N’y a-t-il pas un vidage plus complet à afficher? J’ai aussi utilisé NSZombie , mais je ne comprends vraiment pas comment l’utiliser, alors si c’est votre réponse, veuillez fournir un lien vers la documentation sur la façon dont je suis censé obtenir des données pertinentes.

Voici mon exemple: j’essaie d’utiliser les données de base. Mon projet n’a pas été configuré à l’origine, alors j’ai dû l’append manuellement, ce que j’ai fait en allant dans mon projet> Construire des phases> Link Binary with Libraries> en cliquant sur le plus et en ajoutant CoreData.framework

Ensuite, j’ai créé mon modèle de données en allant dans Fichier> Nouveau> Modèle de données. J’ai créé pas mal d’atsortingbuts et c’est tout

Après cela, j’ai ajouté les méthodes appropriées au délégué de l’application (je l’ai fait en créant un nouveau projet avec Core Data, puis en copiant les méthodes):

 //code removed, as its not needed for the question/answer 

Après cela, j’ai juste essayé de sauvegarder une valeur dans l’object géré (encore une fois, le code copié depuis l’implémentation par défaut avec un nouveau projet):

 //code removed, as its not needed for the question/answer 

Mais tout ce que j’obtiens lorsque addTime méthode addTime est l’erreur SIGABRT.

erreur xcode

SIGABRT augmente lorsqu’un object reçoit un message non implémenté. Combien d’avertissements votre application a-t-elle? Essayez de naviguer à travers eux et trouvez ceux qui vous avertissent que “certains objects peuvent ne pas répondre à certains sélecteurs”, si vous nettoyez votre application à partir de tous ces éléments, vous obtiendrez probablement un fonctionnement correct.

EDIT: Réponse des commentaires ci-dessous qui sont très utiles:

ok, voici l’artillerie lourde – avez-vous essayé d’utiliser des points d’arrêt? Ouvrez le sixième onglet de votre explorateur de projet, dans le coin inférieur gauche, appuyez sur + -> Ajouter un point d’arrêt d’exception -> Terminé. Cela va append un gestionnaire d’exceptions qui arrêtera votre application sur l’appel de méthode qui plante l’application.

EDIT: à partir de xCode 5.0> Vous n’avez plus besoin de spécifier quelle exception votre point d’arrêt va intercepter pendant la création du point d’arrêt. Vous avez juste besoin d’appuyer sur + -> Ajouter un point d’arrêt d’exception et vous êtes bon.

entrer la description de l'image ici