Xcode menemukan fungsi pemanggil

117

Di Xcode, bagaimana saya bisa menemukan semua fungsi pemanggil dari fungsi tertentu?

genesys
sumber
2
Ngomong-ngomong, saya telah melampirkan gambar ke jawaban saya. dan versi XCode saat ini mendukung ini. apakah Anda bersedia untuk memberi suara positif / menerima jawaban, jika Anda puas dengan salah satu jawaban ??
David T.
Jawaban @uiroshan di bawah ini paling nyaman jika Anda sering melakukan ini (⌘ + Ctrl + Shift + H)
drpawelo

Jawaban:

125

Xcode 4.5 (dalam versi beta) memiliki fungsi ini. ketika Anda menyorot say ... a function, Anda dapat memeriksa "pemanggil" dan "callee"

edit saya yakin itu terletak di kiri atas panel file untuk file itu ... jadi klik dua kali pada fungsi untuk menyorotnya, dan Anda klik pada opsi panel file (yang memiliki "buka baru-baru ini, buka belum disimpan ... dll "tarik turun

EDIT # 2

berikut adalah gambar untuk memperjelas (karena saya tidak tahu apa nama tombol menu ini) masukkan deskripsi gambar di sini:

JUGA - XCode 4.5 tidak lagi beta, saya yakin, dan sebenarnya sudah dipublikasikan

EDIT # 3

juga perhatikan bahwa pemanggil ini TIDAK mencari yang dipanggil dengan performSelectormetode, seperti dalam, pemanggil tertentu yang memiliki ini performSelectortidak akan muncul jika Anda telah melakukan sesuatu seperti:

[self performSelector:@selector(checkIfShouldStopMovement) withObject:nil afterDelay:0.25];
David T.
sumber
5
Ini sebenarnya View-> Standard Editor-> Show Related Items, lihat jawaban saya ( stackoverflow.com/a/13472334/888091 ).
pille
2
@pille Ah. Saya mengerti, saya tidak tahu Anda dapat mengaksesnya dengan cara itu. Saya telah memberi suara positif pada jawaban Anda, dan saya telah mengedit jawaban saya untuk menunjukkan cara UI. Terima kasih untuk pintasannya !!
David T.
55

Di XCode 4.5, metode tercepat adalah ini:

  1. Pilih metode dalam kode (klik dua kali atau tandai menggunakan kursor mouse Anda)
  2. Tekan Ctrl+1
  3. Pilih "Penelepon" dari menu pop-up.

Ini adalah jalan pintas untuk menuju View-> Standard Editor-> Show Related Items di menu judul XCode.

pille
sumber
1
Menu Penelepon juga peka konteks, jadi Anda tidak perlu memilih metode terlebih dahulu. Letakkan saja di mana saja dalam metode yang Anda ingin lihat pemanggilnya sebelum menjalankan pintasan <kbd> Ctrl </kbd> + <kbd> 1 </kbd>.
Jay
Manis, tidak tahu itu!
pille
2
Saya tidak percaya tidak ada cara yang lebih cepat ... Saya cukup kecewa dengan Xcode setelah menggunakan IntelliJ
stevo.mit
35

gunakan kombinasi tombol ⌘ + Ctrl + Shift + H pada XCode 7 dan seterusnya.

uiroshan
sumber
2
Solusi yang bagus. Terima kasih!
Myxtic
Kursor harus pada nama fungsi.
Ali Momen Sani
Jika Anda mengedit pintasan: cari "Temukan hierarki panggilan"
brainray
4
Saya akan mematahkan jari saya untuk menekan kombinasi ini!
Accid Bright
Terima kasih, saya sedang mencari solusi semacam ini.
Hitesh Agarwal
23

Ini juga dapat diakses melalui asisten editor, seperti yang ditunjukkan pada gambar di bawah. Metode mana pun yang Anda memiliki titik penyisipan di editor utama di sebelah kiri akan menampilkan pemanggilnya di asisten editor. Menurut saya ini adalah cara terbaik untuk memeriksa setiap penelepon secara berurutan, karena setelah Anda memilih "Penelepon", Anda dapat memilih penelepon berikutnya melalui menu pop-up berikutnya di sebelah kanan di bilah lompat.

masukkan deskripsi gambar di sini

Brian Webster
sumber
Ini bagus - tapi butuh beberapa saat bagi saya untuk memikirkan bagaimana memulainya. Untuk orang lain yang mengikuti saya: perhatikan bahwa di tangkapan layar Brian, buka-bawah yang terbuka bukanlah menu "Tampilkan Item Terkait" (ctrl + 1) yang disebutkan dalam beberapa jawaban lain. Sebaliknya, di asisten editor, klik tarik-turun di sebelah kanan tombol "Maju", dan pilih Penelepon.
Ashley
1
Anda tidak perlu menggunakan asisten editor. Anda dapat membuka menu yang sama di editor utama.
funroll
18

Di Xcode-7 Anda memiliki fungsionalitas untuk mendapatkan panggilan-heirerchy. Klik kanan pada fungsi dan klik "Temukan Hierarki Panggilan": referensi gambar:

pengguna18853
sumber
4
ini disebut "Call Hierarchy" dan pintasan keyboardnya adalah: CTRL-SHIFT-COMMAND-H (sementara ada yang dipilih).
Tn. Zystem
7

Xcode 10 ke atas tampaknya membuatnya lebih mudah. Just Command Click pada fungsi tersebut dan Anda akan melihatnya di drop down.

masukkan deskripsi gambar di sini

king_T
sumber
4

Gunakan Temukan di Proyek sebagai Teks atau sebagai Simbol.

AFAIK, tidak ada yang setara dengan misalnya Call Hierarchy diketahui dari Eclipse atau NetBeans.

Adam Woś
sumber
1
Ada "pemanggil" dan "callee" di xCode.
4

Tekan ⌘+Ctrl+Shift+Hpintasan ketika metode minat dipilih (dengan mouse atau kursor). (sesuai jawaban @uiroshan)

Tetapi Anda juga dapat menentukan pintasan lain di XCode -> Preferences -> Key Bindings

Pilih metode dan gunakan ⌘ + Ctrl + Shift + H.  Tetapi Anda juga dapat menentukan pintasan lain di XCode -> Preferences -> Key Bindings

drpawelo
sumber
1
Saya pribadi menggunakan ⌘ + H (Anda harus beralih untuk membatalkan penetapannya dari 'Sembunyikan Xcode' terlebih dahulu. Cukup ketik "Sembunyikan" di kotak Filter, pilih dan hapus dengan Backspace)
drpawelo
2

Anehnya alat pemfaktoran ulang dapat mendeteksi semua panggilan metode tetapi tidak dapat mendeteksi pencarian.

Jadi saya cukup menggunakannya untuk mengganti nama metode saya menjadi nama unik (mis. Reset ke resetPlayer) dan kemudian menggunakan nama baru dalam pencarian tekstual biasa.

1.) Menu> Edit> Refactor ...> Ubah nama menjadi nama unik

2.) mencari nama baru

Obiwahn
sumber
Anda juga dapat meninjau semua tempat yang akan diubah dalam pratinjau, tanpa benar-benar menyelesaikan operasi refactor.
funroll