在项目中调用NSLog函数位置

时间:2013-04-23 16:02:06

标签: iphone ios objective-c cocoa-touch nslog

我有一个大项目,有很多NSLog()个电话。当某些事情发生时NSLog()有效,我不知道调用了哪个NSLog。如何找到在类文件中调用NSLog()的地方?

我的NSLog是这样的:NSLog(@"%@", someArray);

这是日志:

2013-04-23 20:43:38.257 myProj[2101:707] {
    id = 1;
    version = 1;
}

myProj[2101:707]在这里意味着什么?它是否向我提供了有关NSLog函数在课堂上的位置的任何信息?

3 个答案:

答案 0 :(得分:6)

您可以尝试在项目中搜索输出。

例如,如果输出是

This is my output with values 3.1415 and 1.2345.

cmd shift F 并搜索“这是我的输出值”

您还可以在搜索字词中插入占位符:

enter image description here

答案 1 :(得分:1)

将所有NSLog用法转换为DLog,然后打印日志语句:

  1. 文件名
  2. 方法名称
  3. 行号
  4. 输出到日志的每一行。通过这种方式,您可以立即看到所有日志记录的完成位置。 DLog是比NSLog更好的日志记录机制,您应该在所有项目中开始使用它。

    将pch文件中的DLog定义为:

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

答案 2 :(得分:0)

您可以使用the function class_getName获取放置日志语句的对象的类名,并在NSLog()中包含类名。

像这样:

#import <objc/runtime.h>
…
NSLog("%@ Some Log Statement", class_getName([self class]));