1.常見常用的宏可以放在PCH文件中,配置需要注意一個(gè)問題,配置文件路徑一個(gè)簡(jiǎn)單的解決方式就是 項(xiàng)目名+/+PCH文件名例如:PCHTest/PrefixHeader.pch
2.NSLog宏 應(yīng)該說(shuō)NSLog打印信息是初學(xué)者最喜歡的調(diào)試手法桩引,也是最簡(jiǎn)單的調(diào)試滚秩,通過(guò)打印出的信息查看程序運(yùn)行的路徑盅称。但是打印出的信息較少歌焦,本身NSLog效率較低飞几,有人使用宏做了部分優(yōu)化,代碼如下:能夠打印出所在類名独撇、所在方法名屑墨、詳細(xì)時(shí)間、行號(hào)纷铣。
ifdef DEBUG
define CWGLog(format, ...) NSLog((@"[文件名:%s]\n" "[函數(shù)名:%s]\n" "[行號(hào):%d] \n" format), **FILE**, **FUNCTION**, **LINE**, ##**VA_ARGS**);
else
define CWGLog(...);
endif
參數(shù)說(shuō)明: VA_ARGS 是一個(gè)可變參數(shù)的宏卵史,很少人知道這個(gè)宏,這個(gè)可變參數(shù)的宏是新的C99規(guī)范中新增的搜立,目前似乎只有g(shù)cc支持(VC6.0的編譯器不支持)以躯。宏前面加上##的作用在于,當(dāng)可變參數(shù)的個(gè)數(shù)為0時(shí)啄踊,這里的##起到把前面多余的","去掉的作用,否則會(huì)編譯出錯(cuò), 你可以試試忧设。
3.代碼運(yùn)行時(shí)間
define Start [NSDate date]
define End NSLog(@"執(zhí)行耗時(shí)%f", -[Start timeIntervalSinceNow]);
使用
Start;
NSString *str = @"asd";NSLog(@"%@",str);
End;
輸出結(jié)果:耗時(shí)0.000006