项目中的NSLog

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

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

宏定义写法如下:

#ifdef DEBUG

#define LOG(...) NSLog(__VA_ARGS__);

#define LOG(...) NSLog(@"%s Line %d: \n %@ \n\n", __func__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])

#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的参数。如果要增加新的参数,则在哪里进行增加。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS开发过程中,我们经常要用到NSLog来打印一些调试信息,而且一般是习惯性的大量使用,在模拟器上运行可能没有...
    _TT_阅读 5,890评论 0 1
  • 在pch文件里编写如下代码 //消除文件中的nslog函数 #ifdef __OPTIMIZE__ #define...
    审判spp阅读 2,600评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,486评论 19 139
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,057评论 0 12
  • ​1 这次游轮行,我和曲玮玮(微信公众号:曲玮玮)一个房间,机会也是玮玮帮我争取的,觉得好久没聚了,大家可以一起出...
    杨小米阅读 3,749评论 0 8