2012-08-17 90 views
4

Xcode是否有办法显示方法的调用者函数?我想知道类中某个方法的所有调用函数。一种解决方案是在项目中找到方法,但有时不同的类会有同名的方法 - 这可能会找到我们不想找到的方法..如何知道谁在Xcode中调用方法?

许多其他IDE都具有此功能,例如Visual C++ 2003/2005/2008,Eclipse ...

你可以在XCode中做到这一点吗?

回答

8

的Xcode 4.4 intrudced此功能: New Features in Xcode 4.4(向下滚动到“查找和搜索增量”)

  1. 将光标放在你有兴趣
  2. 功能的顶部
  3. 打开助理编辑或( + + 输入
  4. 在助理编辑器的顶部,选择 '主叫方'
    Assistant editor - Callers

  5. 你会看到所有调用了功能的列表中选择功能
    Assistant editor - dropdown

不像其他IDE那样有效,但是完成这项工作。

+6

打开上述弹出式菜单的更快方法是突出显示想要知道调用者的方法并按Ctrl + 1;无需真正打开助理编辑。 – pille 2012-11-20 20:22:32

0

是的。在你的方法中设置一个断点,然后当它断裂时,有两个点可以看到一个堆栈。首先是Xcode的“控制台”区域(通常是最下面的中间区域),有一个可能不会立即显示为可导航的顶栏,但它是一个选择式UI控件,它包含整个堆栈。选择不同的级别可以显示示波器的变量等。将您的编辑器弹出确切的文件(您可以在此处鼠标悬停变量以查看其内存中的实时值)。其次是在左侧区域(您通常浏览文件的位置)。这里还有另外一个标签(除了文件浏览器)。底部有一个滑块,用于控制堆栈中您看到的“步骤”数量;点击一个有类似的影响。

Xcode showing full stack access on breakpoint

对于简单的重构等方法重新命名,你可以使用上下文菜单,当你右键单击选择的方法名,和Xcode的将替换所有相同的选择在您的项目。但是,这并没有解决你提到的具有相同签名方法的不同类。但是,它确实为您提供了一个非常好的界面,用于查看上下文中的更改并轻松地接受或拒绝他们。

然而,可能会注意到,更改方法签名通常可能是设计不佳的标志,特别是如果您必须使用在不同类别上具有相同签名的方法(不是“同级”和因此应该都得到了重命名)

+1

对不起。也许我没有清楚地表达我的意思。我不想知道在应用程序运行时谁调用了该方法。我想知道每个可能会调用该方法的人。为了我更改方法时知道谁影响的目的。或者我可以控制这个方法的所有入口。 – qiushuitian 2012-08-17 05:19:11