Objective-C:确定哪个文件执行了NSLog

时间:2013-10-16 09:46:17

标签: objective-c nslog multiple-files

假设我有10个不同的实现文件,这些文件以混乱的顺序运行,并且在每个文件中都有NSLog(@"Log");,当我运行程序时,我将得到10 Log个我的控制台输出,但我怎么知道哪个文件记录了哪个?我正在寻找像

这样的东西
`In someFile1.m: Log`
`In someFile3.m: Log`
`In someFile2.m: Log`
`...`

依此类推。这可能吗?

2 个答案:

答案 0 :(得分:4)

您可以使用预处理器宏,看一下这个例子:

NSLog(@"In %s - %s:%d someObject=%@", __FILE__, __func__, __LINE__, someObject);

这是可用的: https://developer.apple.com/library/ios/qa/qa1669/_index.html

答案 1 :(得分:2)

您可以使用__FILE__宏:

NSLog(@"%s",__FILE__ );

哪个输出文件名:

2013-10-16 20:49:17.536 ABC[3637:a0b] /Users/who/where//DeviceViewController.m