Iphone 称为NSLog';s函数';s在项目中的位置

Iphone 称为NSLog';s函数';s在项目中的位置,iphone,ios,objective-c,cocoa-touch,nslog,Iphone,Ios,Objective C,Cocoa Touch,Nslog,我有一个大项目,有很多调用。当某些事情发生时,一些NSLog()工作,我不知道调用哪个NSLog。如何在类文件中找到调用isNSLog()的位置 我的NSLog是这样的:NSLog(@“%@”,someArray) 下面是日志: 2013-04-23 20:43:38.257 myProj[2101:707] { id = 1; version = 1; } myProj[2101:707]在这里意味着什么?它是否提供了有关NSLog函数在类中的位置的任何信息?您可以尝试在项目

我有一个大项目,有很多调用。当某些事情发生时,一些
NSLog()
工作,我不知道调用哪个
NSLog
。如何在类文件中找到调用is
NSLog()
的位置

我的
NSLog
是这样的:
NSLog(@“%@”,someArray)

下面是日志:

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

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

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

例如,如果输出是

This is my output with values 3.1415 and 1.2345.
按cmdshiftF并搜索“这是我的值输出”

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

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

像这样:

#import <objc/runtime.h>
…
NSLog("%@ Some Log Statement", class_getName([self class]));
#导入
…
NSLog(“%@somelog语句”,class_getName([self class]);

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

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

    将pch文件中的DLog定义为:

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

    这对未来来说是一个很好的观点,但我想OP首先很难找到正确的NSLog语句。这是否有助于回答这个问题?DLog可以定义为NSLog的替代品,但它不能帮助OP找出调用哪个NSLog。@实际上,如果OP将所有NSLog替换为DLog,他会找到他要找的电话。@n格列佛,我已经更新了答案,以便更清楚地说明DLog是一个很好的解决方案。@Wain这比+1好得多。有兴趣了解如何将模式插入查找器中。。我可以解释得更清楚一点。。如果..单击文本字段左侧的放大镜图标,将不胜感激