1、如何自定义NSLog呢?
直接在工程的XXX_Prefix.pch中加入以下语句(就相当于在全局中定义了)
#define NSLog NSLog(@"#%s##%d#",strrchr(__FILE__,'/'),__LINE__);NSLog
例如NSLog(@" begin main function");
打印出来如下
#/main.mm##30#
begin main function
2、如何在发行版release中屏蔽NSLog
方法1:
直接在工程的XXX_Prefix.pch中加入以下语句(就相当于在全局中定义了)
#define NSLog //NSLog
方法2:
- #ifdef
DEBUG - #define
LOG(...) NSLog(__VA_ARGS__); - #define
LOG_METHOD NSLog(@"%s", __func__); - #else
- #define
LOG(...); #define LOG_METHOD; - #endif
我们发布到appstore 上的版本均是release版本,这里简单说下这两个版本的差异。
release 是发行版本,比debug版本要小一些,他们调用两个不同底层库,debug 包含的信息多,可以断点调试,单步执行,使用使用TRACE/ASSERT等调试输出语句,
但是release 版本不包含调试信息,运行速度比较快。
另外在此处设置的DEBUG 参数可以在下面的路径进行设置:工程->Target->Build Setting -> Preprocessor Macros。 默认系统已经给出了DEBUG的参数。如果要增加新的参数,则在哪里进行增加。
但是release 版本不包含调试信息,运行速度比较快。
另外在此处设置的DEBUG 参数可以在下面的路径进行设置:工程->Target->Build Setting -> Preprocessor Macros。 默认系统已经给出了DEBUG的参数。如果要增加新的参数,则在哪里进行增加。
方法3:
打开工程 Project--->Edit Project Editting(选着build)选项--->找到Preprocessor Macros 设置其值为DEBUG=1
如图所示: