宏定义重写NSLog

只需要 在ProjectName_Prefix.pch 中追加你对应的宏定义,不用import 就可以直接使用了。

#define DEBUG

//宏输出函数

#ifdef DEBUG

#define SFun_Log(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 的时候,这里的##起到把前面多余的,去掉的作用。否则编译出错。

时间: 2024-11-10 17:05:53

宏定义重写NSLog的相关文章

iOS开发过程中,NSLog宏定义

在项目开发的过程中,经常遇到要在调试的时候打印log,但是上线或是release 的时候不需要去显示log 的情况,此时你辛辛苦苦写了那么多的log,你要么就手动注释掉,要么就是设一个开关变量,企图用这个总开关开启.其实可以充分利用宏定义进行设置. 步骤比较简单,只需要 在ProjectName_Prefix.pch 中追加你对应的宏定义,不用import 就可以直接使用了. 宏定义写法如下: [plain] view plaincopy #ifdef DEBUG #define LOG(...

(转)iOS 常用宏定义

#ifndef MacroDefinition_h #define MacroDefinition_h //-------------------获取设备大小------------------------- //NavBar高度 #define NavigationBar_HEIGHT 44 //获取屏幕 宽度.高度 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) #define SCREEN_HEIGHT ([UI

iOS开发中使用宏定义提高开发效率

iOS开发中使用宏定义提高开发效率 (2013-07-10 10:47:33) 转载▼ iOS开发中,巧妙的使用宏定义,可以提高开发效率,本篇简单介绍一下宏的定义,设置,应用,并在未来实践中不断追加一些常用的宏定义. 调试Log iPhone应用程序开发调试的时候,在代码中加入NSLog的暴力调试方法是很频繁的,但是在release的时候要删除这些调试代码,那工作量是烦躁,这样的情况下,试用宏就会显得非常的方便. 看下面的例子: #ifdef DEBUG #define LOG(...) NSL

iOS常用宏定义

//-------------------获取设备大小------------------------- //NavBar高度 #define NavigationBar_HEIGHT 44 //获取屏幕 宽度.高度 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height) //-----------

iOS 一些常用的宏定义

iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便. 补充 #define mFirstLaunch mAPPVersion //以系統版本來判斷是否第一次啓動,包括升級後啓動 #define mFirstRun @"firstRun" //判斷是否第一次運行,升級後啓動不算 //一般的提示信息 #define mAlertView(ti

iOS 常用的宏定义

============================================= --2015/12/9 -[ 更新 ] 1.判断是否为真机 or 模拟器[注:记得先判断是否为模拟器咯,否则会失败的哦] #if TARGET_IPHONE_SIMULATOR//模拟器 #define IS_IPHONE 0 #elif TARGET_OS_IPHONE//真机 #define IS_IPHONE 1 #endif 2.屏幕宽高 #pragma mark - 自定义宏 //考虑转屏的影响

IOS常用宏定义1

#ifndef MacroDefinition_h #define MacroDefinition_h //-------------------获取设备大小------------------------- //NavBar高度 #define NavigationBar_HEIGHT 44 //获取屏幕 宽度.高度 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) #define SCREEN_HEIGHT ([UI

iOS技巧,宏定义

1.NSlog  发布后不打印 #ifdef DEBUG// 如果有DEBUG这个宏就编译下面一句代码 #define DDLog(...) NSLog(__VA_ARGS__) #else // 如果没有DEBUG这个宏就编译下面一句代码 #define DDLog(...) #endif 2.三方库及其他整理 1.?AFNetworking   HTTP 网络请求库   2.?SDWebImage 图片缓存 3.?MBProgressHUD 加载中展示 4.MMDrawerControlle

高效的iOS宏定义

iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便. 本文整理自http://www.cocoachina.com/applenews/devnews/2013/0328/5907.html . 做了一些分类和注释,可以根据自己习惯再添加或者删除或者修改这些宏进行使用. [cpp] view plaincopy // //  MacroDefini