Trova i riferimenti ai metodi in Xcode


174

Esiste un modo in Xcode per trovare tutti i luoghi in cui è stato chiamato un metodo o una proprietà?

In Eclipse, ad esempio, è possibile fare clic con il pulsante destro del mouse su un metodo e selezionare Trova riferimenti . C'è qualcosa di simile in Xcode?

Risposte:


252
  1. Seleziona il metodo che ti interessa o posiziona il cursore di testo al suo interno.
  2. Apri il menu "File correlati" tramite l'icona in alto a sinistra dell'editor. (È il pulsante immediatamente a sinistra del pulsante Indietro).
  3. Vai al sottomenu "Chiamanti" per un elenco di tutti i metodi che chiamano il metodo selezionato e fai clic su uno di essi per passare a quel file e metodo.

Nelle foto ...

Schermata dei passaggi 1 e 2 sopra.

Schermata del passaggio 3 sopra

Un paio di note:

  • Puoi farlo anche per le proprietà.
  • Nota che quando selezioni un metodo di chiamata dal menu Chiamanti per passare al punto in cui è stato chiamato il tuo metodo, Xcode evidenzia solo la prima chiamata. Ogni metodo di chiamata verrà visualizzato nell'elenco "Chiamanti" solo una volta, anche se contiene molte chiamate al tuo metodo. Quindi, se stai cercando di apportare alcune modifiche in ogni punto dell'applicazione in cui viene chiamato un metodo, fai attenzione a non perderne alcuni in cui un metodo di chiamata contiene due chiamate al metodo che ti interessa.

34
Il collegamento predefinito per visualizzare il menu, ^1quindi di solito sono in grado di premere ^1, c, enterper visualizzare l'elenco.
Peter Theill,

Questo trova tutti i chiamanti del metodo e le implementazioni principali. C'è un modo per trovare i chiamanti solo di questa implementazione?
Daniel Kaplan,

1
@DanielKaplan Immagino di no, poiché almeno in alcuni casi il compilatore non avrà modo di sapere quale implementazione deve essere chiamata.
Mark Amery,

Il mio metodo è chiamato inite questo fa apparire anche qualsiasi metodo chiamato init. Non così intelligente ...
Nathan H,

36

Sì, apri l'editor Assistant e invece di Controparti seleziona Chiamanti.

inserisci qui la descrizione dell'immagine


1
Non è necessario utilizzare l'editor di divisione per questo, anche se può essere conveniente se modificherai molti metodi di chiamata in rapida successione. Vedi la mia risposta
Mark Amery,

18

A partire da XCode 4.5 è possibile fare clic su "Mostra opzioni di ricerca" nel campo di ricerca di Search Navigator. Lì puoi specificare "Riferimenti a simboli"

inserisci qui la descrizione dell'immagine


2
Questo è un leggero miglioramento rispetto a una ricerca semplice, ma restituisce tutti i riferimenti, non solo quello particolare che stai cercando. Ad esempio, se si dispone di una classe con una proprietà "height", la ricerca di riferimenti di simboli sulla proprietà height restituirà riferimenti a tutti i tipi di altre proprietà di altezza utilizzate, quindi è comunque necessario scorrere i risultati per trovare quelli volere. Per un hack che funziona abbastanza bene vedi questo: stackoverflow.com/a/5457479/850721
Mike Lorenz


7

Posizionare il punto di inserimento in una chiamata o una dichiarazione di metodo e scegliere Trova> Trova simbolo selezionato nel progetto. Per i selettori multipart questo evidenzierà solo la prima parte ma la ricerca sembra funzionare in modo relativamente affidabile. Puoi anche utilizzare Trova gerarchia di chiamate che evidenzia invece l'intera linea.

Anche la corrispondente voce di menu contestuale (Trova simbolo selezionato nell'area di lavoro) funziona, ma è un po 'più complicato far funzionare correttamente. Assicurati che nessun testo venga selezionato, altrimenti cercherà la parola selezionata anziché l'intero selettore. Per fare ciò, è possibile fare clic con il pulsante sinistro del mouse prima di fare clic con il pulsante destro del mouse (o Control-clic) nella stessa posizione. Non esiste un problema del genere con la gerarchia contestuale Trova chiamata.


è anche molto utile avere una scorciatoia da tastiera per lo stesso, il debug diventa molto più veloce
Naishta,

-11

Con xcode 4 ora puoi fare clic con il tasto destro del mouse sui riferimenti e selezionare "vai alla definizione".


12
Questo risponde alla domanda opposta.
Richard,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.