惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
量子位
月光博客
月光博客
罗磊的独立博客
宝玉的分享
宝玉的分享
博客园_首页
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
博客园 - 叶小钗
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
雷峰网
雷峰网
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
美团技术团队
爱范儿
爱范儿
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog

博客园 - 大强跑了

MacOS应用主菜单连接到ViewController的事件 设置ios/iPad应用允许分屏 QLabel加入点击的几种方式 记录常用的几条gitee命令 编译安装低版本的vapor toolbox vmware fusion打不开dev vmmon断裂管道 macOS升级ruby macOS生成icns文件的脚本 开发AppleScript时查看程序UI元素的工具 mac进入恢复模式 macos升级后安装cocoapods DataGridView自定义RichTextBox列 C#winform的datagridview设置选中行 Other Linker flags 添加 -Objc导致包冲突 nat打洞原理和实现 成为顶尖自由职业者必备的七个软技能之四:如何成为销售之王(转) mac下编译FFmpeg-Android iOS app submission : missing 64-bit support eclipse显示adb is down错误,无法真机调试
OBJC调试日志控制的宏定义
大强跑了 · 2025-07-31 · via 博客园 - 大强跑了

一直以来都用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的完整路径,或者把文件拖进输入框。

没有日志输出,清爽。