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的完整路径,或者把文件拖进输入框。
没有日志输出,清爽。