Xcodeは呼び出し元の関数を見つける


117

Xcodeで、特定の関数のすべての呼び出し元関数を見つけるにはどうすればよいですか?


2
ちなみに、私は私の答えに画像を添付しました。XCodeのバージョンは現在これをサポートしています。あなたが答えのいずれかに満足しているなら、あなたは答えを賛成/受け入れても構わないと思いますか?
デビッドT.

@uiroshanの以下の回答は、これをたくさん行う場合に最も便利です(⌘+ Ctrl + Shift + H)
drpawelo

回答:


125

Xcode 4.5(ベータ版)にはこの機能があります。say ...機能を強調表示すると、「発信者」と「着信者」を確認できます

編集するそれはそのファイルのファイルパネルの左上にあると思います...したがって、関数をダブルクリックして強調表示し、ファイルパネルのオプションをクリックします(「最近開いたファイル、未保存のファイルを開く」のオプション) ...など」ドロップダウン

編集#2

明確にするための画像は次のとおりです(このメニューボタンの名前がわからないため)ここに画像の説明を入力してください

また-XCode 4.5はベータ版ではなくなったと思い、実際には公開されています

編集#3

また、この呼び出し元はperformSelectorメソッドの下で呼び出されることを検索しないことにも注意してください。たとえば、performSelector次のような操作を行った場合、これを持っている特定の呼び出し元は表示されません。

[self performSelector:@selector(checkIfShouldStopMovement) withObject:nil afterDelay:0.25];

5
それは実際には「表示」->「標準エディタ」->「関連項目の表示」です。私の回答を参照してください(stackoverflow.com/a/13472334/888091)。
ピレ

2
@pille Ah。そうか、そういうふうにアクセスできるなんて知らなかった。私はあなたの回答に賛成しました。UIの方法を示すために私の回答を編集しました。ショートカットをありがとう!
デビッドT.

55

XCode 4.5では、最も速い方法はこれです:

  1. コードでメソッドを選択(ダブルクリックまたはマウスカーソルを使用してマーク)
  2. Ctrl+を押す1
  3. ポップアップメニューから[発信者]を選択します。

これは、XCodeのタイトルメニューで[表示]-> [標準エディタ]-> [関連項目を表示]に移動するためのショートカットです。


1
[呼び出し元]メニューも状況依存なので、最初にメソッドを選択する必要はありません。<kbd> Ctrl </ kbd> + <kbd> 1 </ kbd>ショートカットを呼び出す前に、発信者を表示したいメソッド内の任意の場所に配置してください。
ジェイ

甘い、知らなかった!
ピル2013

2
より速い方法がないとは信じられません... IntelliJを使用した後のXcodeにはかなりがっかりしています
stevo.mit

35

XCode 7以降では⌘+ Ctrl + Shift + Hキーの組み合わせを使用します。


2
美しいソリューション。ありがとうございました!
Myxtic

カーソルは関数名上になければなりません。
Ali Momen Sani

場合は、あなたのショートカットを編集した:「呼び出し階層を検索」の検索
brainray

4
指を折ってこの組み合わせを押します!
Accid Bright

おかげで、私はこの種の解決策を探しています。
Hitesh Agarwal

23

以下のスクリーンショットに示すように、アシスタントエディターからもアクセスできます。左側のメインエディターで挿入ポイントを持っている方法のいずれかを選択すると、アシスタントエディターに呼び出し元が表示されます。「発信者」を選択すると、ジャンプバーの右側にある次のポップアップメニューから次の発信者を選択できるため、これが各発信者を連続して確認する最良の方法であることがわかりました。

ここに画像の説明を入力してください


これはすばらしいことですが、始める方法を理解するのに少し時間がかかりました。私をフォローしている他のユーザーの場合:ブライアンのスクリーンショットでは、開いているドロップダウンが他のいくつかの回答で述べられている[関連アイテムを表示](Ctrl + 1)メニューではないことに注意してください。代わりに、アシスタントエディターで、[進む]ボタンの右側にあるドロップダウンをクリックし、[発信者]を選択します。
アシュリー

1
アシスタントエディタを使用する必要はありません。プライマリエディタで同じメニューを開くことができます。
funroll 2014

18

Xcode-7には、コール継承を取得する機能があります。関数を右クリックし、[Find Call Hierarchy]をクリックします。 画像参照:


4
これは「呼び出し階層」と呼ばれ、キーボードショートカットはCTRL-SHIFT-COMMAND-H(何かが選択されているとき)です。
Zystem氏2016年

7

Xcode 10以上でそれがより簡単になったようです。関数をクリックするだけで、ドロップダウンに表示されます。

ここに画像の説明を入力してください


4

プロジェクト内の検索をテキストまたはシンボルとして使用します。

私の知る限り、例えばEclipseやNetBeansから知られているCall Hierarchyに相当するものはありません。


1
xCodeには「caller」と「callee」があります。

4

⌘+Ctrl+Shift+H関心のあるメソッドが選択されているときにショートカットを押します(マウスまたはカーソルで)。(@uiroshanの回答による)

ただし、別のショートカットを指定することもできます XCode -> Preferences -> Key Bindings

メソッドを選択し、⌘+ Ctrl + Shift + Hを使用します。 しかし、XCode-> Preferences-> Key Bindingsで別のショートカットを指定することもできます


1
私は個人的に⌘+ Hを使用します(最初に「XCodeを非表示」から割り当てを解除する必要があります。フィルターボックスに「非表示」と入力し、それを選択してBackspaceで削除します)
drpawelo

2

奇妙なことに、リファクタリングツールはすべてのメソッド呼び出しを検出できますが、検索は検出できません。

したがって、これを使用してメソッドの名前を一意の名前(たとえば、resetPlayerにリセット)に変更し、通常のテキスト検索で新しい名前を使用します。

1.)メニュー>編集>リファクタリング...>一意の名前に変更

2.)新しい名前を検索


実際にリファクタリング操作を終了せずに、プレビューで変更されるすべての場所を確認することもできます。
Funroll 2013年

2

この機能はXCode 4.4.1で利用可能です。次を参照してくださいhttp ://smilingfinney.blogspot.de/2012/09/method-callers-in-xcode-44.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.