成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Xcode學(xué)習(xí)筆記中關(guān)于如何定義宏問(wèn)題解決

移動(dòng)開發(fā) iOS
Xcode學(xué)習(xí)筆記中關(guān)于如何定義宏問(wèn)題解決是本要介紹的內(nèi)容,主要是來(lái)學(xué)xcode中宏的學(xué)習(xí),具體來(lái)看詳細(xì)講解。宏的使用可以節(jié)省代碼重復(fù)輸入工作,還可以為調(diào)試帶來(lái)各種好處。

Xcode學(xué)習(xí)筆記中關(guān)于如何定義問(wèn)題解決是本要介紹的內(nèi)容,主要是來(lái)學(xué)xcode的學(xué)習(xí),具體來(lái)看詳細(xì)講解。的使用可以節(jié)省代碼重復(fù)輸入工作,還可以為調(diào)試帶來(lái)各種好處。本文列出了幾個(gè)非常簡(jiǎn)單實(shí)用的

這些是我在Xcode中常用到的宏:

CMLog: 用它來(lái)代替NSLog:

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

它的作用是將調(diào)用它的類和方法的名稱一起輸出到控制臺(tái)。比如你在MyAppDelegate類的applicationDidFinishLaunching方法中調(diào)用它:

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

控制臺(tái)將輸出:

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

MARK: 此宏用于輸出調(diào)用它的類和方法名稱。適用于只想知道是否一個(gè)方法被調(diào)用了。

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

START_TIMER和END_TIMER: 用于確定一個(gè)方法或一段代碼的運(yùn)行時(shí)間:

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

將START_TIMER 置于需評(píng)測(cè)的代碼段開始處,并將END_TIMER置于代碼段結(jié)束處,你就可獲得這段代碼的運(yùn)行時(shí)間:

  1.  - (NSData *)loadDataFromURL:(NSString *)dataURL    
  2. {      
  3.     START_TIMER;      
  4.     NSData *data = [self doSomeStuff:dataURL];      
  5.     END_TIMER(@"loadDataFromURL");      
  6.     return data;    
  7. }  

輸出為:

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

將所有這些宏定義整理使用條件標(biāo)志放在預(yù)編譯的頭文件中。調(diào)試時(shí),此標(biāo)志設(shè)為1 ,發(fā)布時(shí)將其設(shè)為0 。

  1. #if DEBUG==1    
  2.    #define CMLog(format, ...) NSLog(@"%s:%@";, __PRETTY_FUNCTION__,[NSString stringWithFormat:format, ## __VA_ARGS__]);     
  3.    #define MARK    CMLog(@"%s";, __PRETTY_FUNCTION__);    
  4.    #define START_TIMER NSTimeInterval start = [NSDate timeIntervalSinceReferenceDate];    
  5.    #define END_TIMER(msg)  NSTimeInterval stop = [NSDate timeIntervalSinceReferenceDate]; 
  6. CMLog([NSString stringWithFormat:@"%@ Time = %f";, msg, stop-start]);    
  7. else    
  8.    #define CMLog(format, ...)    
  9.    #define MARK  #define START_TIMER    
  10.    #define END_TIMER(msg)    
  11. endif  

在Debug目標(biāo)設(shè)定中加入:

  1. OTHER_CFLAGS = -DDEBUG=1    

在Release 目標(biāo)設(shè)定中加入:

  1. OTHER_CFLAGS = -DDEBUG=0 

小結(jié):Xcode學(xué)習(xí)筆記中關(guān)于如何定義問(wèn)題解決的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-01 17:50:28

Xcode

2010-05-11 15:09:51

Unix系統(tǒng)

2010-04-28 18:01:15

Unix系統(tǒng)

2010-06-17 11:35:24

Ubuntu 修復(fù)Gr

2011-06-27 16:44:59

Qmake

2011-06-13 16:16:32

Qt 中文問(wèn)題

2010-05-20 13:48:17

IIS服務(wù)器

2011-09-05 18:57:36

MTKJ2ME

2011-08-05 10:57:59

Xcode 升級(jí)

2010-04-28 19:24:17

Hp unix

2010-01-05 10:02:56

LinuxRAID常見問(wèn)題

2010-05-05 14:20:46

AIX CDE

2011-01-21 14:13:10

2012-05-09 10:08:41

跨機(jī)房

2010-05-05 10:25:24

Unix操作系統(tǒng)

2011-11-28 22:45:19

Nginxsession

2009-12-28 10:56:45

WPF Image

2009-06-19 11:16:14

java web中文亂碼

2011-09-07 17:41:01

ubunturvm

2010-09-13 17:15:59

margin-top
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久激情视频 | 中文字幕精品一区久久久久 | av黄色免费在线观看 | 一区二区在线不卡 | 欧美一区二区三区四区视频 | 亚洲精品一 | 特一级毛片 | 日日摸夜夜爽人人添av | 成人激情免费视频 | 青青草社区| 日韩欧美亚洲 | 久久99国产精品 | 国产偷自视频区视频 | 亚洲国产情侣自拍 | 91不卡 | 欧美一级二级视频 | 99视频入口| 激情毛片| 国产精品美女一区二区三区 | 91精品国产91久久久久久三级 | 久久夜色精品国产 | 国产精品久久久久久福利一牛影视 | 永久精品| 黑色丝袜三级在线播放 | 亚洲免费毛片 | 色伊人 | 四虎影视一区二区 | 国产午夜精品一区二区三区四区 | 成人免费视频一区二区 | 一级中国毛片 | 日本黄色免费片 | 精品久久久久久 | 一级黄色影片在线观看 | 日韩一级在线 | 在线观看精品 | 中文字幕第一页在线 | 午夜视频一区 | 日韩一二区 | 北条麻妃99精品青青久久主播 | 国产亚洲精品91 | 日韩在线观看中文字幕 |