2010-08-04 5 views
14

Lorsque j'apporte la console après que mon application iPhone se bloque, il est souvent dit "sélecteur non reconnu envoyé à l'instance 0x bla bla bla". Comment puis-je savoir quelle est cette variable? Y a-t-il un moyen dans le débogueur? Est-ce même possible? Merci.Comment trouver une instance par hex dans la console XCode?

Répondre

19

gdb vous pouvez taper

po 0x12345678 

pour imprimer le -description de l'objet à cette adresse. Mais cette information est rarement utile. Vous devez d'abord vérifier d'abord la trace de l'exception, qui peut localiser la ligne de code à l'origine du problème.

+0

Ouais je ne peux pas comprendre ça non plus. Est-ce que le numéro de ligne du code qui a causé l'exception est le numéro après le + sur la pile d'appel? – marty

+0

@marty: Compilez-vous pour le débogage? Il n'y a pas besoin de vérifier ces informations compliquées. Utilisez simplement le débogueur intégré. Voir [* Guide de développement iOS: Débogage des applications *] (http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/130-Debugging_Applications/debugging_applications.html) et [* Guide de débogage Xcode *] (http://developer.apple.com/iphone/library/documentation/DeveloperTools/Conceptual/XcodeDebugging/000-Introduction/Introduction.html#//apple_ref/doc/uid/TP40007057). – kennytm

+0

Ceci est la réponse la plus utile que j'ai trouvé ici :) – shannoga

10

Il est très utile de créer un point d'arrêt Exception, et avec Xcode 7.3, cela n'a jamais été aussi simple. Cela vous aidera à trouver la ligne de code provoquant une exception.

enter image description here

  1. ajouter point d'arrêt sur la ligne où l'application se bloque
  2. cliquez sur le point d'arrêt dans le menu du navigateur du projet
  3. trouver le point d'arrêt que vous venez de créer et sélectionnez-le
  4. cliquez sur le « + "en bas à gauche
  5. Sélectionnez" Ajouter un point d'arrêt d'exception "

Exécutez votre code ... chaque fois que vous obtenez un "sélecteur non reconnu envoyé à l'instance 0x bla bla bla," le débogueur s'arrête sur la ligne qui cause le problème.

+0

solution brillante – GenRiH

Questions connexes