在 iOS 项目中查找未使用的宏定义

一个项目时间久了,自然会有很多无用的杂七杂八的东西。有时间了需要去优化。遂写此小工具。如题所示,此脚本会搜索指定目录中的所有 .m.mm.h 文件,忽略注释掉的代码。脚本在搜索过程中显示加载小动画,并将搜索结果输出到一名为 unused_macro.txt 的文件。没有写对于 /* */ 形式注释代码的忽略。

思路简单

  1. 遍历目标目录并读取每个 .m.mm.h 文件。
  2. 第一遍遍历通过正则获得所有的宏定义,并记录出现次数为 0。然后第二遍遍历获得已被查找到的宏定义出现的次数。
  3. 搜索完成后,出现次数为 1 的宏定义就是没有使用过的宏定义。然后将结果输出。

主要代码如下

def find_macros(directory, macros):
    for root, _, files in os.walk(directory):
        for file in files:
            if file.endswith(('.m', '.mm', '.h')):
                file_path = os.path.join(root, file)
                with open(file_path, 'r') as f:
                    lines = f.readlines()
                    for index, line in enumerate(lines, start=1):
                        if line.strip().startswith('//'):
                            continue

                        match = re.match(r'#define (\w+)', line)
                        if match:
                            macro_name = match.group(1)
                            macros[macro_name] = {'count': 0, 'file': file_path, 'line': index}

    for root, _, files in os.walk(directory):
        for file in files:
            if file.endswith(('.m', '.mm', '.h')):
                file_path = os.path.join(root, file)
                with open(file_path, 'r') as f:
                    lines = f.readlines()
                    for line in lines:
                        if line.strip().startswith('//'):
                            continue

                        for macro, info in macros.items():
                            if macro in line:
                                info['count'] += 1

完整代码

find_unused_macros_in_iOS_project

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值