41 votes

Comment retrouver la cause de SIGABRT

Je vous montre le code de ce problème pour les fins de l'exemple, mais ma question est: comment suis-je censé suivre et à comprendre SIGABRT erreurs? J'ai lu cette question: sigabrt avec pas de message d'erreur, mais je ne pense pas que cela se rapporte à mon problème.

L'exemple que je vais montrer ci-dessous n'est évidemment pas un xib problème, et avant le temps de se SIGABRT semblait plus à faire avec les exceptions non gérées. J'ai essayé d'utiliser GDB bt , mais cela n'aide pas. N'est-il pas plus globale d'image pour afficher? J'ai également utilisé NSZombie, mais je ne comprends vraiment pas comment l'utiliser, donc, si c'est votre réponse, veuillez fournir un lien vers de la documentation sur comment je suis censé obtenir les données pertinentes à partir d'elle.

Voici mon exemple: je suis en train d'utiliser de Base de Données. Mon projet n'a pas été initialement mis en place avec elle, donc j'ai dû l'ajouter manuellement, que j'ai fait en allant à mon projet>Construire des Phases>Lien Binaire avec les Bibliothèques>cliquer sur le signe plus et en ajoutant CoreData.cadre

Puis j'ai créé mon modèle de données en allant dans Fichier>Nouveau>Modèle de Données. J'ai créé quelques attributs et c'est tout

Après cela, j'ai ajouté les méthodes appropriées pour l'application délégué (je l'ai fait par la création d'un nouveau projet avec Base de Données, puis de copier les méthodes plus):

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

Après cela, j'ai essayé d'enregistrer une valeur à l'objet géré (une fois de plus, le code copié à partir de la valeur par défaut de la mise en œuvre d'un nouveau projet):

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

Mais tout ce que j'obtiens lorsque j'exécute l' addTime méthode est la SIGABRT erreur.

xcode error

73voto

Eugene Points 6015

SIGABRT se lève quand un objet reçoit le message n'est pas implémentée. Combien d'avertissements n'votre application ont? Essayez le surf à travers eux et de trouver celles qui vous avertir "un objet ne peut pas répondre à certaines sélecteur", si vous nettoyez votre application à partir de l'ensemble de ces, vous aurez très probablement le faire fonctionner correctement.

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

ok, va ici de l'artillerie lourde - avez-vous essayé d'utiliser les points d'arrêt? Ouvert le sixième onglet dans votre explorateur de projet, dans le coin en bas à gauche du robinet + -> Ajouter une exception de point d'arrêt -> Fait. Cela va ajouter un gestionnaire d'exception qui permet d'arrêter votre application sur le très appel de méthode qui se bloque l'app.

EDIT: Comme de xCode 5.0 > Vous n'avez plus besoin de spécifier exception est votre point d'arrêt est de l'attraper alors que le point d'arrêt est en cours de création. Vous avez juste besoin de frapper + -> Ajouter une exception de point d'arrêt et vous êtes bon.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X