189 votes

Trouver des références de méthodes dans Xcode

Existe-t-il un moyen dans Xcode de trouver tous les endroits où une méthode ou une propriété a été appelée ?

Dans Eclipse, par exemple, vous pouvez cliquer avec le bouton droit de la souris sur une méthode et sélectionner Trouver des références . Y a-t-il quelque chose de similaire dans Xcode ?

270voto

Mark Amery Points 4705
  1. Sélectionnez la méthode qui vous intéresse, ou positionnez le curseur de texte à l'intérieur de celle-ci.
  2. Ouvrez le menu "Fichiers connexes" via l'icône située en haut à gauche de l'éditeur. (Il s'agit du bouton situé immédiatement à gauche du bouton retour).
  3. Allez dans le sous-menu "Callers" pour obtenir une liste de toutes les méthodes qui appellent la méthode sélectionnée, et cliquez sur l'une d'entre elles pour accéder à ce fichier et à cette méthode.

En images...

Screenshot of steps 1 and 2 above.

Screenshot of step 3 above

Quelques notes :

  • Vous pouvez également le faire pour les propriétés.
  • Notez que lorsque vous sélectionnez une méthode appelante dans le menu Callers pour sauter à l'endroit où votre méthode a été appelée, Xcode ne met en évidence que la section premièrement appel. Chaque méthode appelante n'apparaîtra qu'une seule fois dans la liste des "appelants", même si elle contient de nombreux appels à votre méthode. Ainsi, si vous essayez d'apporter des modifications à chaque endroit de votre application où une méthode est appelée, veillez à ne pas en oublier dans les endroits où une méthode appelante contient deux appels à la méthode qui vous intéresse.

36 votes

Le raccourci par défaut pour faire apparaître le menu dans l'application ^1 donc je suis généralement capable d'appuyer sur ^1, c, enter pour faire apparaître la liste.

0 votes

Cela permet de trouver tous les appelants de la méthode et les implémentations parentes. Existe-t-il un moyen de trouver les appelants de seulement cette mise en œuvre ?

1 votes

@DanielKaplan Je suppose que non, puisque dans certains cas au moins, le compilateur n'a aucun moyen de savoir quelle implémentation doit être appelée.

37voto

Alex Terente Points 9190

Oui, ouvrez l'éditeur Assistant et à la place de Contreparties, sélectionnez Demandeurs.

enter image description here

1 votes

Tu ne le fais pas. ont Il n'est pas nécessaire d'utiliser l'éditeur partagé pour cela, bien que cela puisse être pratique si vous devez éditer un grand nombre de méthodes appelantes en succession rapide. Voir ma réponse.

26voto

Uladzimir Points 399

Sélectionnez la fonction, appuyez sur cmd-shift-A, "Appelants".

enter image description here

18voto

SystematicFrank Points 3014

Depuis XCode 4.5, vous pouvez cliquer sur "Show find options" dans le champ de recherche du navigateur de recherche. Vous pouvez y spécifier "Symbol References".

enter image description here

2 votes

C'est une légère amélioration par rapport à une recherche simple, mais cela retourne tous des références, et pas seulement celle que vous recherchez. Par exemple, si vous avez une classe avec une propriété "height", la recherche de références de symboles sur votre propriété "height" renverra des références à toutes sortes d'autres propriétés "height" que vous avez utilisées, et vous devrez donc passer en revue les résultats pour trouver celles que vous voulez. Pour un hack qui fonctionne assez bien, voyez ceci : stackoverflow.com/a/5457479/850721

7voto

Nicholas Riley Points 26161

Placez le point d'insertion dans une invocation ou une déclaration de méthode et choisissez Rechercher > Rechercher le symbole sélectionné dans le projet. Pour les sélecteurs à plusieurs parties, cela ne mettra en évidence que la première partie, mais la recherche semble fonctionner de manière relativement fiable. Vous pouvez également utiliser l'option Rechercher la hiérarchie des appels, qui met en évidence la ligne entière.

L'élément de menu contextuel correspondant (Find Selected Symbol in Workspace) fonctionne également, mais il est un peu plus difficile à faire fonctionner correctement. Assurez-vous qu'aucun texte n'est sélectionné, sinon la recherche portera sur le mot sélectionné plutôt que sur l'ensemble du sélecteur. Pour ce faire, vous pouvez cliquer avec le bouton gauche de la souris avant de cliquer avec le bouton droit (ou Control-clic) au même endroit. Ce problème ne se pose pas avec la recherche contextuelle de la hiérarchie des appels.

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