2009-11-25 14 views
4

XCode: Exécuter> Afficher> BreakpointsXCode point d'arrêt [NSExceptionRaise] vs - [NSExceptionRaise]

J'ai ajouté l'obligation [NSExceptionRaise] et objc_exception_throw encore quand je ferme la fenêtre Breakpoints puis retour XCode ajoute une troisième point d'arrêt: -[NSExceptionRaise]. Est-ce que cela signifie [NSExceptionRaise] est faux et Je devrais le supprimer? Ou sont-ils tous les deux utiles? Si oui, en quoi sont-ils fonctionnellement différents?

alt text http://i48.tinypic.com/x5cd4x.png

Répondre

3

Le point d'arrêt est correct:

-[NSException raise] 

Vous demandez à le débogueur de briser la méthode -raise de la classe NSException. "[NSExceptionRaise]" est un non-sens (ce qui signifie sans irrespect). :-)

Vous n'avez pas besoin des deux, pour autant que je sache. objc_exception_throw est le "nouveau" chemin, alors que - [NSException raise] est le "vieux" chemin. Je crois si vous êtes sur Leopard ou plus tard, seulement objc_exception_throw sera appelé. 10.4 ou avant appellera - [augmentation NSException].

+0

quelqu'un peut-il vérifier que 10.5+ * seulement * appelle ** objc_exception_throw **? si c'est le cas, je peux oublier complètement cette absurdité [NSException raise]. – Meltemi

+2

A partir de la version 10.5, - [NSException raise] appelle objc_exception_throw. C'est pourquoi vous n'avez pas besoin des deux. – Ken

0

Le point d'arrêt nouvellement ajouté est de -[NSException raise], qui est distincte de [NSExceptionRaise] en ce que celui-ci est une méthode d'objet (NSException étant la classe, raise étant le message). Je ne sais pas ce que c'est, et je pense que XCode essaye d'être intelligent sur ce que vous avez entré v. Ce qu'il pense que vous vouliez dire.

0

Vous devez préfacer la méthode avec un caractère plus ou moins car le débogueur utilise les en-têtes pour localiser et définir le symbole. Différentes méthodes peuvent avoir le même nom, mais les méthodes précédées d'un "+" sont des méthodes de classe et celles précédées de "-" sont des méthodes d'instance. Sans le plus ou le moins, le débogueur n'a aucune idée de la méthode que vous vouliez.