有没有办法告诉哪一行代码生成日志输出而不使用断点并踩踏Xcode(iOS)?

时间:2013-05-21 00:47:40

标签: ios objective-c xcode cocoa-touch

我在Xcode中有以下日志输出:

2013-05-20 17:23:19.901 MyApp[2408:303] invalid pixel format
2013-05-20 17:23:19.901 MyApp[2408:303] invalid context

问题是我不知道哪行代码产生了这些错误。我尝试过,但考虑到我的应用程序的这一部分的复杂性,这是非常乏味的。是否有一种快速简单的方法来跟踪输出这些代码的代码行?

2 个答案:

答案 0 :(得分:5)

是的,有办法做你要问的事。只需将以下内容添加到前缀标题YourAppName-Prefix.pch

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

这将覆盖NSLog,其自定义NSLog将打印如下:

2013-05-20 21:11:10.407 YourAppName[46526:c07] -[JFDepthView initWithGestureRecognizer:] [Line 81] JFDepthView Initialized!

它也适用于您添加到项目中的第三方库。

答案 1 :(得分:2)

从“C”文档,标准预定义宏 - C预处理器:

__FILE____LINE__在生成错误消息时非常有用

NSLog(@"Line: %d", __LINE__);