gpt4 book ai didi

objective-c - 如何打印出方法名称和行号并有条件地禁用 NSLog?

转载 作者:IT老高 更新时间:2023-10-28 12:12:23 26 4
gpt4 key购买 nike

我正在做一个有关在 Xcode 中调试的演示文稿,并希望获得有关有效使用 NSLog 的更多信息。

特别是,我有两个问题:

  • 有没有办法轻松 NSLog 当前方法的名称/行号?
  • 有没有办法在编译发布代码之前轻松“禁用”所有 NSLog?

最佳答案

以下是一些我经常使用的关于 NSLog 的有用宏:

#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
# define DLog(...)
#endif

// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

DLog 宏仅用于在设置了 DEBUG 变量时输出(项目的 cflags中的 -DDEBUG 用于调试配置)。

ALog 将始终输出文本(如常规 NSLog)。

输出(例如 ALog(@"Hello world") )将如下所示:

-[LibraryController awakeFromNib] [Line 364] Hello world

关于objective-c - 如何打印出方法名称和行号并有条件地禁用 NSLog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/969130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com