在Xcode中查找方法引用


174

Xcode中是否有一种方法可以找到已调用方法或属性的所有位置?

例如,在Eclipse中,您可以右键单击一个方法,然后选择“ 查找引用”。Xcode中有类似的东西吗?

Answers:


252
  1. 选择您感兴趣的方法,或将文本光标置于其中。
  2. 通过编辑器左上方的图标打开“相关文件”菜单。(这是后退按钮左侧的按钮)。
  3. 转到“调用者”子菜单,以获取调用所选方法的所有方法的列表,然后单击其中任何一个以跳转到该文件和方法。

图片中...

上面的步骤1和2的屏幕截图。

上面第3步的屏幕截图

一些注意事项:

  • 您也可以为属性执行此操作。
  • 请注意,当您从“调用者”菜单中选择一种调用方法以跳转到调用该方法的位置时,Xcode仅突出显示第一个调用。每个调用方法只会在“调用者”列表中显示一次,即使它包含对您的方法的多次调用。因此,如果您试图在应用程序中调用方法的每个位置进行一些更改,请注意不要在调用方法包含两个对您感兴趣的方法的调用的地方遗漏某些内容。

34
弹出菜单的默认快捷方式,^1因此我通常可以按^1, c, enter来弹出列表。
彼得·西尔

这将找到该方法及其父实现的所有调用方。有没有办法找到此实现的调用方?
丹尼尔·卡普兰

1
@DanielKaplan我猜不会,因为至少在某些情况下,编译器无法知道调用哪种实现。
Mark Amery

我的方法称为init,这init也会调出任何命名的方法。不太聪明……
Nathan H

36

是的,打开助手编辑器,然后选择“呼叫者”而不是“对等人”。

在此处输入图片说明


1
你不具备使用这种拆分编辑器,但如果你要进行大量的编辑快速连续调用方法可能会很方便。看我的答案。
Mark Amery

18

从XCode 4.5开始,您可以在Search Navigator的搜索字段中单击“显示查找选项”。您可以在此处指定“符号引用”

在此处输入图片说明


2
与裸搜索相比,这是一个微小的改进,但是它返回所有引用,而不仅仅是您要查找的特定引用。例如,如果您有一个具有“ height”属性的类,则在height属性上搜索符号引用将返回对您使用过的所有其他高度属性的引用,因此您仍然必须在结果中进行筛选以找到所需的那些想。对于一个效果很好的黑客,请参见:stackoverflow.com/a/5457479/850721
Mike Lorenz 2013年


7

将插入点放置在方法调用或声明中,然后选择“查找”>“在项目中查找所选符号”。对于多部分选择器,这只会突出显示第一部分,但搜索似乎确实相对可靠。您还可以使用“查找呼叫层次结构”来突出显示整行。

相应的上下文菜单项(在“工作区中查找选定的符号”)也可以使用,但是要使其正常工作会有些棘手。确保没有选择任何文本,否则它将搜索选定的单词而不是整个选择器。为此,您可以先在同一位置单击鼠标左键,然后再单击鼠标右键(或按住Control键单击)。上下文的“查找呼叫层次”没有这种问题。


具有相同的键盘快捷键也非常有用,调试变得如此快
Naishta

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.