Xcode 查找调用方函数

在 Xcode,如何找到特定函数的所有调用函数?

46636 次浏览

将“项目中的查找”用作文本或符号。

AFAIK,没有等同于例如 Eclipse 或 NetBeans 已知的调用层次结构。

奇怪的是,重构工具可以检测所有的方法调用,但不能检测搜索。

因此,我只是使用它来将方法重命名为一个唯一的名称(例如,重置为 resetPlayer) ,然后在常规的文本搜索中使用新名称。

菜单 > 编辑 > 重构... > 重命名为惟一名称

2)搜索新名称

Xcode 4.5(测试版)有这个功能。当你突出显示... 一个函数时,你可以检查“调用者”和“被调用者”

编辑 我相信它位于该文件的文件面板的左上角... 所以双击功能来突出显示它,你点击文件面板选项(其中有“打开最近,打开未保存... ... 等”下拉菜单

EDIT #2

here's a picture to clarify (since i dont know what this menu button is called)enter image description here:

我相信 XCode 4.5已经不再是测试版,而是公开发布了

编辑 # 3

还要注意的是,这个调用者不会搜索在 performSelector方法下被调用的情况,比如,如果你做了以下操作,那么拥有这个 performSelector的特定调用者就不会显示出来:

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

在 Xcode,最快的方法是:

  1. Select method in code (double click or mark using your mouse cursor)
  2. Ctrl + 1
  3. Select "Callers" from the pop-up menu.

这是查看-> 编辑器-> 在 Xcode 菜单中显示相关项目的快捷方式。

这也可以通过助理编辑器访问,如下面的截图所示。无论插入点在左侧主编辑器中的哪个方法,其调用方都将显示在助理编辑器中。我发现这是连续查看每个呼叫者的最佳方式,因为一旦你选择了“呼叫者”,你就可以通过跳转栏右侧的下一个弹出菜单选择下一个呼叫者。

enter image description here

在 Xcode-7中,你可以获得调用层次结构的功能,右键点击这个函数,然后点击“查找调用层次结构”: 图像参考:

从 Xcode 7开始使用 something + Ctrl + Shift + H 组合键。

选择感兴趣的方法时按 ⌘+Ctrl+Shift+H快捷键(用鼠标或光标)

但是您也可以在 XCode -> Preferences -> Key Bindings中指定任何其他快捷方式

Select a method and use ⌘+Ctrl+Shift+H. But you can also specify another shortcut in XCode -> Preferences -> Key Bindings

Xcode 10 upwards seems to have made it easier. Just 点击命令 on the function and you should see it in the drop down.

enter image description here