Xcode findet Anruferfunktionen


117

Wie finde ich in Xcode alle Aufruferfunktionen einer bestimmten Funktion?


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];

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.


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.


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


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:


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


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.


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


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


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.