如何检查项目中是否使用常量

How to check if constant is used in project

我有一个包含许多 Objective C 和 Swift 文件的大项目。 有一个 Constants.h 文件,其中包含许多带#define 的常量。它看起来像这样:

#define kConstant1  @"constant1"
#define kConstant2  @"constant2"
#define kConstant3  @"constant3"
#define kConstant4  @"constant4"
...

项目中有许多文件(Swift 和 Objective C)使用了这些常量。不幸的是,还有一些常量没有被代码中的任何文件使用,所以它们是未使用的变量。我想找出哪些常量被使用,哪些没有被使用,删除那些没有被使用的常量。此文件中大约有 3000 个常量,因此手动搜索每个常量的代码会花费很长时间。

有没有其他方法可以找出代码使用了哪个#define变量?

三点建议:

  1. 下载 JetBrains AppCode 并通过其诊断尝试 运行 您的代码。 AppCode 工具可能会找到未使用的常量。

  2. 编写脚本遍历每个文件并检查是否存在常量。如果找到常量,则将其标记为已找到。检查完所有文件后,可以删除没有标记的文件。您可以用任何您想要的形式编写此脚本——bash、ruby、python、swift 等——并且您可以将常量硬编码到其中或提取它们来自 Constants.h 文件。

  3. 逐一注释或删除每个常量并构建项目。如果项目中使用了您删除的常量之一,编译器将抛出错误。

不幸的是,这里没有灵丹妙药。这基本上是一个耗时的过程。 :(