Xcode findet Anruferfunktionen

117

Wie finde ich in Xcode alle Aufruferfunktionen einer bestimmten Funktion?

Genesys
quelle
2
Übrigens habe ich meiner Antwort ein Bild beigefügt. und XCode-Versionen unterstützen dies heutzutage. Wären Sie bereit, eine Antwort zu bewerten / zu akzeptieren, wenn Sie mit einer der Antworten zufrieden sind?
David T.
@uiroshan 's Antwort unten ist am bequemsten, wenn Sie dies viel tun (⌘ + Strg + Umschalt + H)
drpawelo

Antworten:

125

Xcode 4.5 (in der Beta) verfügt über diese Funktionalität. Wenn Sie say ... a function markieren, können Sie "caller" und "callee" überprüfen.

edit ich glaube , es an der oberen linken Ecke des Datei - Panel für die Datei sich befindet ... so einen Doppelklick auf die Funktion um es zu markieren, und Sie klicken Sie auf den Panel - Optionsdatei (die eine , die durch die „offene neu, offen unsaved hat ... etc "fallen lassen

EDIT # 2

Hier ist ein Bild zur Verdeutlichung (da ich nicht weiß, wie diese Menüschaltfläche heißt) Geben Sie hier die Bildbeschreibung ein:

AUCH - XCode 4.5 ist meiner Meinung nach keine Beta mehr und ist tatsächlich in der Öffentlichkeit erhältlich

EDIT # 3

Beachten Sie auch, dass dieses Aufrufer-Ding NICHT nach einem Aufruf unter der performSelectorMethode sucht , da der bestimmte Anrufer, der dies hat performSelector, nicht angezeigt wird, wenn Sie Folgendes getan haben:

[self performSelector:@selector(checkIfShouldStopMovement) withObject:nil afterDelay:0.25];
David T.
quelle
5
Es ist eigentlich Ansicht-> Standard-Editor-> Verwandte Elemente anzeigen, siehe meine Antwort ( stackoverflow.com/a/13472334/888091 ).
Pille
2
@pille Ah. Ich habe nicht gewusst, dass Sie auf diese Weise darauf zugreifen können. Ich habe Ihre Antwort positiv bewertet und meine Antwort bearbeitet, um den Weg der Benutzeroberfläche zu zeigen. Danke für die Abkürzung !!
David T.
55

In XCode 4.5 ist die schnellste Methode folgende:

  1. Methode im Code auswählen (Doppelklick oder Markierung mit dem Mauszeiger)
  2. Drücken Sie Ctrl+1
  3. Wählen Sie "Anrufer" aus dem Einblendmenü.

Dies ist die Verknüpfung, um im Titelmenü von XCode zu Ansicht-> Standardeditor-> Verwandte Elemente anzeigen zu wechseln.

Pille
quelle
1
Das Anrufer-Menü ist auch kontextsensitiv, sodass Sie die Methode nicht zuerst auswählen müssen. Platzieren Sie es einfach an einer beliebigen Stelle innerhalb der Methode, für die Sie die Anrufer anzeigen möchten, bevor Sie die Verknüpfung <kbd> Strg </ kbd> + <kbd> 1 </ kbd> aufrufen.
Jay
Süß, wusste das nicht!
Pille
2
Ich kann nicht glauben, dass es keinen schnelleren Weg gibt ... Ich bin ziemlich enttäuscht vom Xcode, nachdem ich IntelliJ
stevo.mit
35

Verwenden Sie ab XCode 7 die Tastenkombination ⌘ + Strg + Umschalt + H.

Uiroshan
quelle
2
Schöne Lösung. Danke dir!
Myxtic
Der Cursor muss sich auf dem Funktionsnamen befinden.
Ali Momen Sani
Falls Sie Ihre Verknüpfungen bearbeitet haben: Suchen Sie nach "
Anrufhierarchie
4
Ich werde meine Finger brechen, um diese Kombination zu drücken!
Accid Bright
Danke, ich suche nach einer solchen Lösung.
Hitesh Agarwal
23

Sie können auch über den Assistenten-Editor darauf zugreifen, wie im folgenden Screenshot gezeigt. Unabhängig davon, in welcher Methode Sie die Einfügemarke im Haupteditor links haben, werden die Anrufer im Assistenteneditor angezeigt. Ich habe festgestellt, dass dies die beste Möglichkeit ist, jeden Anrufer nacheinander zu durchsuchen, da Sie nach Auswahl von "Anrufer" den nächsten Anrufer über das nächste Popup-Menü rechts in der Sprungleiste auswählen können.

Geben Sie hier die Bildbeschreibung ein

Brian Webster
quelle
Das ist großartig - aber ich habe eine Weile gebraucht, um herauszufinden, wie ich anfangen soll. Für andere, die mir folgen: Beachten Sie, dass in Brians Screenshot das geöffnete Dropdown- Menü nicht das Menü "Verwandte Elemente anzeigen" (Strg + 1) ist, das in einigen anderen Antworten erwähnt wird. Klicken Sie stattdessen im Assistenten-Editor auf das Dropdown-Menü rechts neben der Schaltfläche "Weiterleiten" und wählen Sie "Anrufer".
Ashley
1
Sie müssen den Assistenten-Editor nicht verwenden. Sie können dasselbe Menü im primären Editor öffnen.
Funroll
18

In Xcode-7 haben Sie die Funktionalität, Anruferbenerchie zu erhalten. Klicken Sie mit der rechten Maustaste auf die Funktion und klicken Sie auf "Anrufhierarchie suchen": Bildreferenz:

user18853
quelle
4
Es heißt "Anrufhierarchie" und die Tastenkombination lautet: STRG-UMSCHALT-BEFEHL-H (während etwas ausgewählt ist).
Herr Zystem
7

Xcode 10 aufwärts scheint es einfacher gemacht zu haben. Nur Befehl Klicken Sie auf die Funktion und Sie sollten sie in der Dropdown-Liste sehen.

Geben Sie hier die Bildbeschreibung ein

king_T
quelle
4

Verwenden Sie In Projekt suchen als Text oder als Symbol.

AFAIK, es gibt kein Äquivalent zu zB Call Hierarchy, das von Eclipse oder NetBeans bekannt ist.

Adam Woś
quelle
1
Es gibt "Anrufer" und "Angerufene" in xCode.
4

Drücken Sie die ⌘+Ctrl+Shift+HTastenkombination, wenn eine interessierende Methode ausgewählt ist (mit einer Maus oder einem Cursor). (gemäß der Antwort von @uiroshan)

Sie können aber auch eine andere Verknüpfung in angeben XCode -> Preferences -> Key Bindings

Wählen Sie eine Methode und verwenden Sie ⌘ + Strg + Umschalt + H.  Sie können aber auch eine andere Verknüpfung unter XCode -> Einstellungen -> Tastenkombinationen angeben

drpawelo
quelle
1
Ich persönlich benutze ⌘ + H (Sie müssen zuerst die Zuweisung von 'XCode ausblenden'
aufheben. Geben
2

Seltsamerweise kann das Refactoring-Tool alle Methodenaufrufe erkennen, jedoch nicht die Suche.

Also benutze ich es einfach, um meine Methode in einen eindeutigen Namen umzubenennen (z. B. auf resetPlayer zurücksetzen) und dann den neuen Namen in einer regulären Textsuche zu verwenden.

1.) Menü> Bearbeiten> Refactor ...> In eindeutigen Namen umbenennen

2.) Suche nach dem neuen Namen

Obiwahn
quelle
Sie können auch einfach alle Stellen überprüfen, die in der Vorschau geändert werden, ohne den Refactor-Vorgang tatsächlich abzuschließen.
Funroll