OStack程序员社区-中国程序员成长平台

标题: objective-c - NSLog 与 Xcode 断点记录和创建日志文件 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 19:30
标题: objective-c - NSLog 与 Xcode 断点记录和创建日志文件

您是否更愿意推荐使用 NSLog 或 Xcode 提供的用于断点调试的日志记录功能?

使用 NSLog 有什么优势吗?

对于在客户设备上运行的应用程序:是否有一种简单的方法可以将 NSLog 或等效输出记录到文件或网络服务中?



Best Answer-推荐答案


就个人而言,我建议同时使用日志记录(通过 NSLog)和设置断点。或许您的问题是什么时候应该使用其中一种与另一种。

通过断点/GDB 调试的优点

当您想进入代码并逐步观察发生了什么时,断点非常有用。单步执行代码的一些优点包括能够检查您喜欢的任何变量以及能够通过 gdb 执行代码(有关 gdb 技巧的更多信息,请参见 Objective-C Debugging tips in Xcode4?)。断点也很方便,因为您不必重新编译和添加日志语句。

另见 How to set a conditional breakpoint in Xcode based on an object string property?

日志记录的优点

日志非常适合您一直想查看的信息。例如,一个下载资源的应用程序可能想要记录下载的每个资源(url 和您可能需要的任何其他信息)。我喜欢使用名为 DLOG 的宏来创建条件日志,这样我就可以看到更详细的开发日志,但在发布版本中删除这些日志。

DLog(仅记录 DEBUG 构建)

#ifdef DEBUG
    #define DLog(...) NSLog(__VA_ARGS__)
#else
    #define DLog(...) /* */
#endif

这只会为 DEBUG 构建发出 NSLog 消息。您可以添加类似的功能来促进对应用程序的复杂部分进行详细日志记录的形式。当我调试拖动问题时,我发现使用日志来观察正在发生的事情(而不是逐步检查所有内容)通常会很好。但是,当我完成功能开发或修复问题后,我肯定不再对这些日志感兴趣,所以我通常会有条件地显示这些日志,以便以后遇到问题时可以再次查看日志.

关于objective-c - NSLog 与 Xcode 断点记录和创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379834/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4