NO.1 先了解下 Debug 和 Release 的區(qū)別
- Release是發(fā)行版本,比Debug版本有一些優(yōu)化惶楼,文件比Debug文件小 Debug是調(diào)試版本,Debug和Release調(diào)用兩個不同的底層庫泽裳。
- 一、"Debug是調(diào)試版本齐佳,包括的程序信息更多"
- 二锭弊、只有DEBUG版的程序才能設(shè)置斷點、單步執(zhí)行柜裸、使用TRACE/ASSERT等調(diào)試輸出語句缕陕。
- 三、REALEASE不包含任何調(diào)試信息疙挺,所以體積小扛邑、運行速度快。
NO.2
- 在Swift中我們普通打印的話铐然,默認(rèn)只會打印想要打印的內(nèi)容不會像OC那樣打印附加的一些信息
print(“我是帥哥嗎?")
- 系統(tǒng)只會打印:
Snip20160929_3.png
不會有其它信息蔬崩,所以我們在調(diào)試的時候是不方面的,所以我們需要自己寫一個打印方法搀暑,來顯示一些必要的打印信息沥阳,方便我們平時調(diào)試程序
NO.3 直接上代碼,寫在 AppDelegate 中的一個全局函數(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
這樣就會顯示是在哪個類自点,哪一行進(jìn)行的打印
NO.4 最后我們還要設(shè)置在Release狀態(tài)下不會出現(xiàn)這些打印
- 按下面的操作桐罕,給Debug狀態(tài)設(shè)置一個標(biāo)記,這樣系統(tǒng)會判斷只在Debug狀態(tài)才進(jìn)行打印
Snip20160929_6.png
- 在Build Settings 搜索 Swift flags 展開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情況下就不會再打印了