前面讲了pch 预编译文件的简单使用,这里再讲一下另一个东西。
我们知道,使用NSLog虽然很方便可以看到我们想要的内容,但是其实他印出的信息其实并不全,比如我们想知道在哪个类中打印?或者是在哪行打印,当然我们可以通过pch 对NSLog进行定义,或者重新写一个Log的类来定义我们想要的log结构,但是这里主要讲一下DLog 和ALog的配置使用。
如何实现
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
# define DLog(...)
#endif
// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
解释:
DLog 和ALog本质上其实就是在pch 预编译期间,对NSLog进行宏替换,我们可以在使用它们的时候定义其他的信息。你可以看到,在debug 模式下,和release 模式下,上面的DLog作用。 debug模式会输出行数,类等信息,release 模式则不会输出,如果你使用ALog,两种模式均会输出行数信息。
我想这个部分还是会有一些帮助的,如果你刚好需要的话,也可以加到你的project里面
下面再讲一下设定部分;
设定一
build setting下面搜索:Other C Flags
在debug栏位,输入-DDEBUG即可
设定二
让你的编译器知道预编译文件的路径是必须要的。在Prefix Header那栏右边双击输入以下信息:
$(SRCROOT)/YourPCHDirectory/YourPrefixHeader.pch
$(SRCROOT) 定位到你的project path,后面你只需要跟包含你pch 文件的那层目录即可。
这样就大功告成,可以在你的project里面使用DLog和ALog了,试试看吧 : )