关于宏定义

来源:互联网 发布:glibc 源码 编辑:程序博客网 时间:2024/04/28 14:57


CMLog: 用它来代替NSLog:

#define CMLog(format, ...) NSLog(@"%s:%@", __PRETTY_FUNCTION__,[NSString stringWithFormat:format, ## __VA_ARGS__]);  

它的作用是将调用它的类和方法的名称一起输出到控制台。比如你在MyAppDelegate类的applicationDidFinishLaunching方法中调用它:

CMLog(@"My iPhone is an %@, v %@", [[UIDevice currentDevice] model], [[UIDevice currentDevice] systemVersion]);  

控制台将输出:

2009-01-05 10:06:28.957 MyApp15173:20b]        -[MyAppDelegate applicationDidFinishLaunching:]:  My iPhone is an iPhone Simulator, v 2.2  

MARK: 此宏用于输出调用它的类和方法名称。适用于只想知道是否一个方法被调用了。

#define MARK    CMLog(@"%s", __PRETTY_FUNCTION__);  

START_TIMER和END_TIMER: 用于确定一个方法或一段代码的运行时间:

 #define START_TIMER NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];    #define END_TIMER(msg)  NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate];   CMLog([NSString stringWithFormat:@"%@ Time = %f";, msg, stop-start]);  

将START_TIMER 置于需评测的代码段开始处,并将END_TIMER置于代码段结束处,你就可获得这段代码的运行时间:

复制代码
 - (NSData *)loadDataFromURL:(NSString *)dataURL    {          START_TIMER;          NSData *data = [self doSomeStuff:dataURL];          END_TIMER(@"loadDataFromURL");          return data;    }  
复制代码

输出为:

2009-01-05 10:31:37.943 MyApp[15283:20b] -[MyAppDelegate loadDataFromURL:]:  loadDataFromURL Time = 3.636021    

将所有这些宏定义整理使用条件标志放在预编译的头文件中。调试时,此标志设为1 ,发布时将其设为0 。

复制代码
#if DEBUG==1       #define CMLog(format, ...) NSLog(@"%s:%@";, __PRETTY_FUNCTION__,[NSString stringWithFormat:format, ## __VA_ARGS__]);        #define MARK    CMLog(@"%s";, __PRETTY_FUNCTION__);       #define START_TIMER NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];       #define END_TIMER(msg)  NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; CMLog([NSString stringWithFormat:@"%@ Time = %f";, msg, stop-start]);    else       #define CMLog(format, ...)       #define MARK  #define START_TIMER       #define END_TIMER(msg)    endif  
复制代码



在Debug目标设定中加入:

OTHER_CFLAGS = -DDEBUG=1    

在Release 目标设定中加入:

OTHER_CFLAGS = -DDEBUG=0 


原文地址:http://www.cnblogs.com/pengyingh/articles/2402977.html

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 腰和跨一样宽怎么办 脚后跟骨折手术后小腿变细怎么办 生完孩子骨盆错位怎么办 皮肤又黑又粗糙怎么办 翠研珠宝被坑了怎么办 领导是小人我该怎么办 微信二维码重置了怎么办 衣服有蝽的卵怎么办 人坐牢去了房贷怎么办 人死了欠的房贷怎么办 体育生文化没过怎么办 舍友偷了钱没证据怎么办 舍友要一直开空调怎么办 和大学室友相处不愉快怎么办 和舍友三观不合怎么办 室友欠200钱忘了怎么办 和舍友闹矛盾了怎么办 被宿舍人孤立了怎么办 分到一个爱管事的舍友怎么办 添加了村人名录怎么办 打csgo出现卡顿怎么办 csgo创意工坊下载慢怎么办 电脑全是英文死机了怎么办 亿盛国际出金后不到账怎么办 玩游戏的界面很大怎么办电脑 文件缺失导致电脑无法启动怎么办 眼睛里拉出白丝怎么办 脚扭了脚面肿了怎么办 伪音唱歌嗓子疼怎么办 小孩吊水手肿了怎么办 棉质地的裙子起褶子怎么办 孕妇吃了马苋菜怎么办 三非黑人抓住了怎么办 33岁了写字好丑怎么办 裤子熨焦了发亮怎么办 黑裤子熨亮了怎么办 。P手机没有钤声怎么办 处处被小人其欠负怎么办??? 衣服开了一个口怎么办 脸上长痘痘留下的坑怎么办 脸部被打得皮肤怎么办