Ale*_*exR 3 logging objective-c nslog ios
您是否更愿意推荐使用 NSLog 或 Xcode 提供的日志记录功能作为断点进行调试?
使用 NSLog 有什么优点吗?
对于在客户设备上运行的应用程序:是否有一种简单的方法可以将 NSLog 或等效输出记录到文件或 Web 服务?
就我个人而言,我建议同时使用日志记录(通过NSLog)和设置断点。也许您的问题是何时应该使用其中一种而不是另一种。
当您想要进入代码并逐步观察发生了什么时,断点是很好的选择。单步执行代码的一些优点包括能够检查您喜欢的任何变量以及能够通过 gdb 执行代码(有关 gdb 提示的更多信息,请参阅Xcode4 中的 Objective-C 调试提示?)。断点也很方便,因为您不必重新编译和添加日志语句。
另请参阅如何根据对象字符串属性在 Xcode 中设置条件断点?
日志非常适合提供您始终想查看的信息。例如,下载资源的应用程序可能想要记录下载的每个资源(url 以及您可能希望的任何其他信息)。我喜欢使用名为 的宏创建条件日志DLOG,这样我就可以看到更多用于开发的详细日志,但在发布版本中将其删除。
#ifdef DEBUG
#define DLog(...) NSLog(__VA_ARGS__)
#else
#define DLog(...) /* */
#endif
Run Code Online (Sandbox Code Playgroud)
这只会为DEBUG构建发出 NSLog 消息。您可以添加类似的功能,以方便对应用程序的复杂部分进行详细日志记录。当我调试拖动问题时,我发现使用日志来观察正在发生的事情(而不是逐步执行所有操作)通常很好。但是,当我完成功能开发或解决问题后,我肯定对这些日志不再感兴趣,因此我通常会有条件地显示这些日志,以便以后遇到问题时可以再次查看日志。
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |