宏定义及pch文件相对路径

pch文件相对路径

**Precompile Prefix Header**的值设置为**YES**
$(SRCROOT)/项目/pch目录/PrefixHeader.pch

hong

#define DEBUG

//宏输出函数

#ifdef DEBUG

#define YYLog(fmt, ...) NSLog((@"%s," "[lineNum:%d]" fmt) , __FUNCTION__, __LINE__, ##__VA_ARGS__); //带函数名和行数

#define SL_Log(fmt, ...) NSLog((@"===[lineNum:%d]" fmt), __LINE__, ##__VA_ARGS__);  //带行数

#define SC_Log(fmt, ...) NSLog((fmt), ##__VA_ARGS__); //不带函数名和行数

#else

#define SFun_Log(fmt, ...)

#define SL_Log(fmt, ...)

#define SC_Log(fmt, ...)

#endif

只需要在Product ->Scheme->Edit Scheme ->info选择,是release ,还是debug版本即可。如果debug 版本,则答应log,若release版本则不打印。

release 是发行版本,比debug版本要小一些,他们调用两个不同底层库,debug 包含的信息多,可以断点调试,单步执行,使用使用TRACE/ASSERT等调试输出语句,
但是release 版本不包含调试信息,运行速度比较快。
另外在此处设置的DEBUG 参数可以在下面的路径进行设置:工程->Target->Build Setting ->Preprocessor Macros。默认系统已经给出了DEBUG的参数。如果要增加新的参数,则在哪里进行增加

——FILE——宏在预编译时,会替换成当前的源文件名字
——LINE——替换成当前的行号
——FUNCTION——替换成当前的函数的名称
——VA—ARGS——可变参数的宏,宏前面加上##作用在于:当当可变参数的个数为0 的时候,这里的##起到把前面多余的,去掉的作用。否则编译出错。

你可能感兴趣的:(宏定义及pch文件相对路径)