OBJC调试日志控制的宏定义

一直以来都用NSLog输出日志,没有做任何处理。既影响性能,还容易泄漏数据。

问deepseek,可以用宏定义控制日志是否打印,增加一个开关,调试时打开,发布时关闭,非常方便。

// 在全局头文件中定义(如 PrefixHeader.pch)
#define ENABLE_DEBUG_LOG 0  // 1=开启,0=关闭

#if ENABLE_DEBUG_LOG
#define DLog(fmt, ...) NSLog((@"[DEBUG] %s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define DLog(...)
#endif

 代码可以放到预编译文件(PCH文件)。

现在新版xcode新建项目默认都不创建PCH文件,可以自己新建,Other类里的PCH File。

新建PrefixHeader.pch后,选中项目,再选中PROJECT,选择Build Settings,选择ALL,筛选框输入Prefix Header,输入PrefixHeader.pch的完整路径,或者把文件拖进输入框。

没有日志输出,清爽。

posted @ 2025-07-31 16:51  大强跑了  阅读(8)  评论(0)    收藏  举报