年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1745|回复: 0

关于自定义NSLog需要注意的一点

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2015-3-13 10:46:57 | 显示全部楼层 |阅读模式
    相信很多开发人员都会自定义NSLog的输入方式,一方面可以自定义自己的输出格式,有利于调试程序,比如说日志输出时打印程序所在的文件与行数;另一方面有利控制日志的输出,比如调试时输出日志,但发布后不输出。
    示例:
    [Objective-C] 纯文本查看 复制代码
    // 自定义输出 SALog(...)
    #ifdef DEBUG
    #define SALog(...) NSLog(@"%s-%d行:%@", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])
    #else
    #define SALog(...)
    #endif
    问题来了,很多人都知道#ifdef DEBUG的意义在于只有调试时才输出日志,发布时不输出日志,但很多人都只知道在调试时确实有日志输出,可发布呢?无人关心了。其实有个地方是需要设置的,Product--Scheme--Edit Scheme--Info中的Build Configuration,如下图所示:
    41D9259D-4393-49E8-AA8E-84A8B266869B.png
    这个地方决定了我们的编译模式,如果你以Debug模式编译再发布,那#ifdef DEBUG就没有意义了,发布时还是会输出一大堆的日志信息。
    所在,在发布程序时,请记得将该选项切换成Release!!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-4-28 22:22 , Processed in 0.050942 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表