【问题标题】:In Xcode, is there a way to search for all lines where a specific method is called?在 Xcode 中,有没有办法搜索调用特定方法的所有行?
【发布时间】:2014-08-20 01:21:27
【问题描述】:

在 Xcode 中跳转到符号定义很容易——只需单击 ⌘ 即可。但是相反的方向呢?也就是说,给定方法:

@interface MyObject : NSObject
- (void)myMethodWithParameter:(id)parameter
           someOtherParameter:(id)someOtherParameter;
- (void)myMethodWithParameter:(id)parameter
             anotherParameter:(id)anotherParameter;
@end

有没有办法在项目或工作区中搜索所有调用-[MyObject myMethodWithParameter:someOtherParameter:] 方法的行?

请注意,我不是要求包含文本“myMethodWithParameter:”的行,因为这会为 both 方法提供结果。我只想要调用第一个方法的结果,而不是第二个。

Xcode 使用 libclang 来执行符号查找,所以它大概知道每一行调用的是哪个方法。所以理论上,这似乎应该是可能的......

【问题讨论】:

  • 我知道您可以将搜索功能从工作区中的文本更改为使用正则表达式。那么你可以随心所欲地具体化。搜索正则表达式“myMethodWithParameter.*some”将返回第一个而不是第二个的所有实例
  • 太棒了,好主意!如果您将此作为答案发布,并且在接下来的几天内没有其他答案弹出,我将接受此作为此问题的答案。实际发布匹配第一种方法但不匹配第二种方法的正则表达式的奖励积分。 :)

标签: ios objective-c xcode ide


【解决方案1】:

您所追求的是您选择的特定方法的“调用者”列表(无论它是在 .h 还是 .m)。 Xcode 的助理编辑器可以做到这一点。

首先在 Xcode 中打开 助理编辑器。你应该有一个分屏。在左侧,您应该有包含要查找其调用者的方法的头文件或主文件。确保将光标放在相关方法上。

接下来点击上方工具栏右侧上方的根面包屑。您要查找的图标是领结或书。当点击一个列表时,您可以向下滚动,直到看到类似“callers(3)”的内容。将鼠标悬停在它上面将展开所有调用您在左侧选择的方法的方法。括号中的数字是项目中有多少个方法的调用者。

助理编辑器真的很酷,它有很多有用的功能。

【讨论】:

    【解决方案2】:

    您可以将查找导航器从搜索文本更改为搜索正则表达式,然后您可以尽可能详细。

    搜索正则表达式“myMethodWithParameter.*some”将返回第一个而不是第二个的所有实例

    另一方面,Bamsworld 的回答也不好,我经常想知道那些其他选项在助理编辑器中的作用。直到

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2011-03-12
      • 2017-12-04
      • 2022-01-16
      • 2023-01-27
      • 2016-09-29
      相关资源
      最近更新 更多