Xcode Znajdź funkcje dzwoniącego

117

W Xcode, jak mogę znaleźć wszystkie funkcje wywołującego określonej funkcji?

genesys
źródło
2
Nawiasem mówiąc, do mojej odpowiedzi dołączyłem obrazek. a wersje XCode obsługują to obecnie. czy byłbyś skłonny zagłosować za / zaakceptować odpowiedź, jeśli jesteś zadowolony z którejś odpowiedzi?
David T.
Odpowiedź @uiroshan poniżej jest najwygodniejsza, jeśli robisz to dużo (⌘ + Ctrl + Shift + H)
drpawelo

Odpowiedzi:

125

Xcode 4.5 (w wersji beta) ma tę funkcję. kiedy podświetlisz powiedz ... funkcję, możesz zaznaczyć „dzwoniący” i „wywoływany”

edytuj Wydaje mi się, że znajduje się on w lewym górnym rogu panelu pliku dla tego pliku ... więc kliknij dwukrotnie tę funkcję, aby ją podświetlić, a następnie kliknij opcje panelu plików (ten, który ma "otwórz ostatnie, otwórz niezapisane ... etc ”

EDYCJA # 2

oto obrazek do wyjaśnienia (ponieważ nie wiem, jak nazywa się ten przycisk menu) wprowadź opis obrazu tutaj:

TAKŻE - XCode 4.5 nie jest już wersją beta, jak sądzę, i faktycznie jest publicznie dostępny

EDYCJA # 3

Zwróć również uwagę, że ta funkcja wywołująca NIE szuka wywołania w ramach performSelectormetody, tak jak w przypadku, konkretny obiekt wywołujący, który to performSelectorma, nie pojawi się, jeśli zrobiłeś coś takiego:

[self performSelector:@selector(checkIfShouldStopMovement) withObject:nil afterDelay:0.25];
David T.
źródło
5
W rzeczywistości jest to Widok-> Edytor standardowy-> Pokaż powiązane elementy, zobacz moją odpowiedź ( stackoverflow.com/a/13472334/888091 ).
pille
2
@pille Ah. Rozumiem, nie wiedziałem, że możesz uzyskać do niego dostęp w ten sposób. Głosowałem za twoją odpowiedzią i zredagowałem swoją odpowiedź, aby pokazać sposób interfejsu użytkownika. Dzięki za skrót !!
David T.
55

W XCode 4.5 najszybszą metodą jest:

  1. Wybierz metodę w kodzie (kliknij dwukrotnie lub zaznacz kursorem myszy)
  2. Naciśnij Ctrl+1
  3. Wybierz „Dzwoniący” z wyskakującego menu.

To jest skrót do przechodzenia do View-> Standard Editor-> Show Related Items w menu tytułowym XCode.

pille
źródło
1
Menu Callers jest również zależne od kontekstu, więc nie musisz najpierw wybierać metody. Po prostu umieść go w dowolnym miejscu metody, dla której chcesz zobaczyć wywołujące przed wywołaniem skrótu <kbd> Ctrl </kbd> + <kbd> 1 </kbd>.
Jay
Słodko, nie wiedziałem tego!
pille
2
Nie mogę uwierzyć, że nie ma szybszej drogi ... Jestem dość rozczarowany Xcode po użyciu IntelliJ
stevo.mit
35

użyj kombinacji klawiszy ⌘ + Ctrl + Shift + H na XCode 7 i nowszych.

uiroshan
źródło
2
Piękne rozwiązanie. Dziękuję Ci!
Myxtic
Kursor musi znajdować się na nazwie funkcji.
Ali Momen Sani,
Jeśli edytowałeś swoje skróty: wyszukaj „Znajdź hierarchię połączeń”
brainray
4
Złamię sobie palce, żeby nacisnąć tę kombinację!
Accid Bright
Dzięki, szukam takiego rozwiązania.
Hitesh Agarwal
23

Dostęp do tego można również uzyskać za pośrednictwem asystenta edytora, jak pokazano na poniższym zrzucie ekranu. Niezależnie od metody, w której znajduje się punkt wstawiania w głównym edytorze po lewej stronie, wywołujące zostaną wyświetlone w edytorze asystenta. Zauważyłem, że jest to najlepszy sposób przeglądania kolejnych rozmówców, ponieważ po wybraniu opcji „Dzwoniący” możesz wybrać następnego dzwoniącego za pośrednictwem następnego wyskakującego menu po prawej stronie paska przeskoku.

wprowadź opis obrazu tutaj

Brian Webster
źródło
To świetnie - ale zajęło mi trochę czasu, zanim wymyśliłem, jak zacząć. Dla innych, którzy mnie śledzą: zauważ, że na zrzucie ekranu Briana otwarte rozwijane menu nie jest menu „Pokaż powiązane elementy” (ctrl + 1), o którym mowa w innych odpowiedziach. Zamiast tego w edytorze asystenta kliknij menu rozwijane po prawej stronie przycisku „Dalej” i wybierz Dzwoniący.
Ashley
1
Nie musisz korzystać z asystenta edytora. Możesz otworzyć to samo menu w głównym edytorze.
funroll
18

W Xcode-7 masz możliwość uzyskiwania połączenia z heirerchy. Kliknij prawym przyciskiem myszy funkcję i kliknij „Znajdź hierarchię wywołań”: odniesienie do obrazu:

user18853
źródło
4
nazywa się to „Call Hierarchy”, a skrót klawiaturowy to: CTRL-SHIFT-COMMAND-H (gdy coś jest zaznaczone).
Pan Zystem
7

Wydaje się, że Xcode 10 w górę ułatwiło to. Po prostu polecenie Kliknij funkcję i powinieneś ją zobaczyć na liście rozwijanej.

wprowadź opis obrazu tutaj

king_T
źródło
4

Użyj funkcji Znajdź w projekcie jako tekst lub jako symbol.

AFAIK, nie ma odpowiednika np. Call Hierarchy znanej z Eclipse czy NetBeans.

Adam Woś
źródło
1
W xCode są „rozmówca” i „wywoływany”.
4

Naciśnij ⌘+Ctrl+Shift+Hskrót po wybraniu metody zainteresowań (myszką lub kursorem). (zgodnie z odpowiedzią @uiroshan)

Ale możesz też określić dowolny inny skrót w XCode -> Preferences -> Key Bindings

Wybierz metodę i użyj ⌘ + Ctrl + Shift + H.  Ale możesz także określić inny skrót w XCode -> Preferencje -> Wiązania klawiszy

drpawelo
źródło
1
Osobiście używam ⌘ + H (najpierw musisz wyłączyć przypisanie z 'Hide XCode'. Po prostu wpisz "Hide" w polu Filter, wybierz i usuń za pomocą Backspace)
drpawelo
2

O dziwo, narzędzie do refaktoryzacji może wykryć wszystkie wywołania metod, ale nie wyszukiwanie.

Więc po prostu używam go do zmiany nazwy mojej metody na unikalną nazwę (np. Reset do resetPlayer), a następnie używam nowej nazwy w zwykłym wyszukiwaniu tekstowym.

1.) Menu> Edycja> Refaktoryzacja ...> Zmień nazwę na unikalną

2.) wyszukaj nową nazwę

Obiwahn
źródło
Możesz także przejrzeć wszystkie miejsca, które zostałyby zmodyfikowane w podglądzie, bez faktycznego kończenia operacji refaktoryzacji.
funroll