導(dǎo)語(yǔ)
在開(kāi)發(fā)中經(jīng)常會(huì)打印出一些內(nèi)容來(lái)進(jìn)行調(diào)試拣度,但是這些打印內(nèi)容會(huì)消耗性能短曾,所以我們需要在 Release (發(fā)布)的時(shí)候取消這些打印姨谷,而在開(kāi)發(fā)調(diào)試中將這些內(nèi)容展示出來(lái)康谆。
Objective-C中有宏定義领斥,我們可以在預(yù)編譯文件中寫(xiě)入以下代碼:
#ifdef DEBUG
#define JYHLog(...) NSLog(__VA_ARGS__)
#else
#define JYHLog(...)
#endif
這樣就可以在開(kāi)發(fā)時(shí)使用JYHLog(@"Something")來(lái)打印內(nèi)容,而在發(fā)布的時(shí)候這些輸出代碼會(huì)被替換為空沃暗,從而減少了性能消耗月洛。
而在Swift中,沒(méi)有宏定義這種東西孽锥,所以我們要自己在Xcode中加入:
添加標(biāo)記
利用Swift全局函數(shù)的功能:將函數(shù)定義在項(xiàng)目中任意一個(gè)類(lèi)文件的class外面,就可以在項(xiàng)目中的任何地方均可以調(diào)用這個(gè)方法.
我們可以在AppDelegate文件中添加以下代碼:
func JYHLog<T>(_ message : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
#if DEBUG
let fileName = (file as NSString).lastPathComponent
print("\(fileName):(\(lineNum))-\(message)")
#endif
}
可以自行更改里面輸出的內(nèi)容嚼黔,代碼中的DEBUG就是我們之前在XCode中添加的swift flag细层。
該函數(shù)使用了泛型,可以使我們傳遞任意類(lèi)型的數(shù)據(jù)進(jìn)去