利用宏定义控制nslog 的输入输出

本文介绍了一种通过宏定义来智能管理日志的方法,适用于调试时需要记录大量日志,而在正式发布版本中无需展示这些日志的场景。这种方法能够有效地减少手动管理日志的工作量,并且可以通过切换debug和release版本来控制是否输出日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



       在项目的过程中,经常遇到要在调试的时候打印log,但是上线或是release 的时候不需要去显示log 的情况,此时你辛辛苦苦写了那么多的log,你要么就手动注释掉,要么就是设一个开关变量,企图用这个总开关开启。其实可以充分利用宏定义进行设置。

      步骤比较简单,只需要 在ProjectName_Prefix.pch 中追加你对应的宏定义,不用import 就可以直接使用了。

       宏定义写法如下:

 

#ifdef DEBUG
#define LOG(...) NSLog(__VA_ARGS__);
#define LOG_METHOD NSLog(@"%s", __func__);
#else
#define LOG(...); #define LOG_METHOD;
#endif


      这样设置后,只需要在Product ->Scheme->Edit Scheme ->info选择,是release ,还是debug版本即可。如果debug 版本,则答应log,若release版本则不打印。

我们发布到appstore 上的版本均是release版本,这里简单说下这两个版本的差异。
       release 是发行版本,比debug版本要小一些,他们调用两个不同底层库,debug 包含的信息多,可以断点调试,单步执行,使用使用TRACE/ASSERT等调试输出语句,
但是release 版本不包含调试信息,运行速度比较快。
另外在此处设置的DEBUG 参数可以在下面的路径进行设置:工程->Target->Build Setting ->
Preprocessor Macros。默认系统已经给出了DEBUG的参数。如果要增加新的参数,则在哪里进行增加。


  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值