NO.1 先了解下 Debug 和 Release 的區(qū)別
- Release是發(fā)行版本,比Debug版本有一些優(yōu)化,文件比Debug文件小 Debug是調(diào)試版本,Debug和Release調(diào)用兩個(gè)不同的底層庫(kù)。
- 一、"Debug是調(diào)試版本,包括的程序信息更多"
- 二、只有DEBUG版的程序才能設(shè)置斷點(diǎn)、單步執(zhí)行、使用TRACE/ASSERT等調(diào)試輸出語(yǔ)句。
- 三、REALEASE不包含任何調(diào)試信息,所以體積小、運(yùn)行速度快。
NO.2
- 在Swift中我們普通打印的話,默認(rèn)只會(huì)打印想要打印的內(nèi)容不會(huì)像OC那樣打印附加的一些信息
print(“我是帥哥嗎?")
- 系統(tǒng)只會(huì)打印:

Snip20160929_3.png
不會(huì)有其它信息,所以我們?cè)谡{(diào)試的時(shí)候是不方面的,所以我們需要自己寫(xiě)一個(gè)打印方法,來(lái)顯示一些必要的打印信息,方便我們平時(shí)調(diào)試程序
NO.3 直接上代碼,寫(xiě)在 AppDelegate 中的一個(gè)全局函數(shù)
func JJLog<T>(messsage : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
let fileName = (file as NSString).lastPathComponent
print("\(fileName):(\(lineNum))-\(messsage)")
}
- 使用:
JJLog("就是帥哥")

Snip20160929_5.png
這樣就會(huì)顯示是在哪個(gè)類,哪一行進(jìn)行的打印
NO.4 最后我們還要設(shè)置在Release狀態(tài)下不會(huì)出現(xiàn)這些打印
- 按下面的操作,給Debug狀態(tài)設(shè)置一個(gè)標(biāo)記,這樣系統(tǒng)會(huì)判斷只在Debug狀態(tài)才進(jìn)行打印

Snip20160929_6.png
- 在Build Settings 搜索 Swift flags 展開(kāi)Debug 添加標(biāo)記 并在我們的全局函數(shù)中加入判斷
func JJLog<T>(messsage : T, file : String = #file, funcName : String = #function, lineNum : Int = #line) {
#if DEBUG
let fileName = (file as NSString).lastPathComponent
print("\(fileName):(\(lineNum))-\(messsage)")
#endif
}
- 這樣設(shè)置后,我們的調(diào)試打印,在Release情況下就不會(huì)再打印了