我很好奇是否有任何工具为此提供部分解决方案。由于performSelector,这是一个棘手的问题。 。 。但是工具应该至少能够提出候选人,使人类的工作变得更容易。
答案 0 :(得分:3)
使用静态分析,由于Objective-C的动态特性,无法检测已定义但未使用的功能/方法。唯一合理的解决方案是使用GCov
或类似工具运行覆盖。即使这样,你也必须让你的程序尽一切可能,以确保你不会删除一些在测试过程中没有使用过的功能。
此外,this script对此有一些有趣的想法。
答案 1 :(得分:1)
鉴于在Objective-C程序中经常选择的非常详细但描述性的方法名称,我发现在项目中进行文本查找通常就足够了。我通常只使用方法名称的第一部分,以避免必须匹配方法参数。这将匹配常规方法调用以及@selector
和NSSelectorFromString
的使用。
当然,这对于非常常见的方法名称不起作用,或者如果您需要方法名称的其余部分来消除许多类似方法之间的歧义,但我发现这种情况很少发生。