目前,我们正在定义一种扩展的日志(log)机制,以打印出日志(log)的类名和源行号.

#define NCLog(s, ...) NSLog(@"<%@:%d> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], \
    __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__])

例如,当我调用NCLog("Hello world");

<ApplicationDelegate:10>Hello world

现在我还想注销方法名,如:

<ApplicationDelegate:applicationDidFinishLaunching:10>Hello world

因此,当我们知道调用哪个方法时,这将使调试变得更容易.我知道我们也有Xcode调试器,但有时,我也想通过注销来进行调试.

推荐答案

print(__FUNCTION__) // Swift
NSLog(@"%@", NSStringFromSelector(_cmd)); // Objective-C

Swift 3 and above

print(#function)

C++相关问答推荐

是什么导致这个错误是不确定的

无法删除C中文件夹内的文件

将C中的2D char数组写入/读取到二进制文件

C语言中的“对象”是什么?

我可以在同一个文件中使用 time.h 中的两个 tm 结构吗?

读取输入数据(在 C 中)后,scanf 是否清空缓冲区?

使用 .* 宽度说明符调用 sprintf 时出现奇怪的警告

在链表中动态存储数据的问题

将所有位从最低有效位翻转到最高有效最后 1 位值的最有效方法是什么?

为什么 memchr() 将 void 指针作为输入?

如何从文件中读取并解析它

从两个 32 位定时器计数器读取 64 位定时器值时,正确的 ARM64(AArch64)数据内存屏障使用是什么?

C:表示不带浮点的分数

C中块内的函数声明

如果平台上“long”和“int”的大小相同 - “long”和“int”有什么不同吗?

C 或 C++ 是否保证数组 < 数组 + SIZE?

假设指向同一个变量的两个指针是非法的/UB,为什么 C 编译器不能优化更改 const 指针的值?

对平方数字求和时是否需要明确处理负数或零?

如何检测 C 代码(需要'extern C')是否在 C++ 中编译

防止控制台窗口在 Visual Studio C/C++ 控制台应用程序上关闭