我怎么知道谁在Xcode中调用该方法?

时间:2012-08-17 03:59:28

标签: xcode

Xcode是否有办法显示方法的调用函数?我想知道类中方法的所有调用函数。解决方案是在项目中找到方法,但有时不同的类具有相同名称的方法 - 这可能会找到我们不寻找的方法..

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

你能在XCode中做到这一点吗?

2 个答案:

答案 0 :(得分:8)

Xcode 4.4引入了这个功能: New Features in Xcode 4.4(向下滚动到“查找和搜索添加内容”)

  1. 将光标移动到您感兴趣的功能之上
  2. 打开智能助理编辑器( ^ + + 输入
  3. 在助理编辑器的顶部,选择“来电者” Assistant editor - Callers

  4. 您将看到所有正在调用您的功能的功能列表 Assistant editor - dropdown

  5. 不如其他IDE那么有效,但能胜任。

答案 1 :(得分:0)

是。在方法中设置断点,然后在断开时,有两个点可以看到堆栈。首先是在Xcode的“控制台”区域(通常是底部中间),有一个顶栏可能不会立即显示为可导航,但它是一个选择风格的UI控件,其中包含整个堆栈。选择不同的级别会显示范围的变量等。将编辑器弹出到该确切文件(您可以将鼠标悬停在变量上以查看其内存中的实时值)。第二个是在左侧区域(您通常浏览文件的位置)。正是出于此目的,还有另一个选项卡(除文件浏览器外)。底部有一个滑块控制你看到的堆栈中有多少“步数”;点击一个有类似的影响。

Xcode showing full stack access on breakpoint

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

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