• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

objective-c - NSLog 与 Xcode 断点记录和创建日志文件

[复制链接]
菜鸟教程小白 发表于 2022-12-12 19:30:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

使用 NSLog 有什么优势吗?

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



Best Answer-推荐答案


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

通过断点/GDB 调试的优点

  • 停止程序流(如果您不想停止程序流,请使用日志记录)
  • 显示所有局部变量
  • 可以传递 objective-c 消息并进行 c 调用。灵活地即时回答您可能对当前状态提出的问题。

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

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

日志记录的优点

  • 不中断程序流程
  • 提供一种聚合调试数据的方法
  • 可以通过管理器在其他设备上查看
  • 如果您将 TestFlight 与 TestFlight SDK 结合使用,则可以捕获 session 中的日志,这在应用崩溃时特别有用。

日志非常适合您一直想查看的信息。例如,一个下载资源的应用程序可能想要记录下载的每个资源(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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap