Objective c 如何在xcode中识别未使用的方法

Objective c 如何在xcode中识别未使用的方法,objective-c,Objective C,VisualStudio可以告诉我从未调用过的方法,XCode也可以这样做吗?我猜不会,因为它们可能是通过选择器调用的,名称可以动态生成。在Obj-C中没有“未使用的方法”的真正含义。因为所有内容都是通过消息传递调用的,编译器可能无法找到显式调用该消息的调用站点,但它仍然是通过运行时方法调用的 如果您想确定某个方法是否未使用,可以在项目范围内搜索该方法名称(如果它包含多个参数,您可以尝试名称中最独特的部分,例如,如果您有-loadData:MIMEType:textEncodingName:ba

VisualStudio可以告诉我从未调用过的方法,XCode也可以这样做吗?我猜不会,因为它们可能是通过选择器调用的,名称可以动态生成。

在Obj-C中没有“未使用的方法”的真正含义。因为所有内容都是通过消息传递调用的,编译器可能无法找到显式调用该消息的调用站点,但它仍然是通过运行时方法调用的


如果您想确定某个方法是否未使用,可以在项目范围内搜索该方法名称(如果它包含多个参数,您可以尝试名称中最独特的部分,例如,如果您有
-loadData:MIMEType:textEncodingName:baseURL:
,您可以只搜索
MIMEType:
)。如果有此方法的任何显式调用,这将为您提供一个好主意。如果您确定在运行时没有动态构造方法名称,那么这可能是一个从未调用过的方法。但您是否对此有信心,取决于您的项目有多复杂以及您使用了多少运行时“魔力”。

另一种可能的方法是注释掉头文件中的方法签名,然后看到出现警告。@Paul.s:这在很多情况下都有效,但不是所有情况下都有效。例如,如果您的方法与另一个现有方法的名称相同,那么在
id
类型的变量上调用它的任何人都不会触发警告。我一直认为xcode要么没有,要么我找不到任何正则表达式功能,这都是一件很遗憾的事。当我想进行像这样的直通搜索时,我总是不得不求助于TextMate,尤其是当这个方法没有一些好的、相当罕见的东西,比如
MIMEType
@Paul.s:Xcode有regex搜索。单击项目搜索界面中的小放大镜图标。你是说在替换中引用捕获?只需使用
\n
语法,例如
foo:\1