在項(xiàng)目開發(fā)中調(diào)試程序或者確定一些數(shù)據(jù)時要經(jīng)常用到打印,那我們?nèi)绾问勾蛴∮闷饋砀奖悖@需要自定義打印。下面我們開始進(jìn)行自定義Log。
如果當(dāng)我們看到打印時就知道這個打印是在哪個文件中,哪個方法,哪一行,這樣是不是更方便我們查看呢,那么首先我們要獲取該打印所在文件,所在方法,所在行。
獲取打印所在文件
<pre>let file = #file</pre>
獲取打印所在的方法
<pre>let funcName = #function</pre>
獲得打印所在行數(shù)
<pre>llet lineNum = #line</pre>
對于獲取打印所在文件,我們肯定不希望在打印的時候看到所有文件路徑信息,而只要知道文件類名就可以了,那么獲取打印所在文件的代碼需要做個處理,這樣就獲取那個文件類名。
<pre>let file = (#file as NSString).lastPathComponent</pre>
我們知道了這些,下面就可以封裝一個打印的方法
<pre>func WXLog<T>(Msg: T, file: String = #file, funcName: String = #function, lineNum: Int = #line) {
let fileName = (file as NSString).lastPathComponent
print("(fileName):((lineNum))-(Msg)")
}</pre>
我們都知道開發(fā)項(xiàng)目時一般在調(diào)試的時候用的都是Debug模式,上傳到AppStore時一般都是Release模式,那么怎么樣讓打印在Debug模式下打印,在Release模式下不打印呢?需要這樣做:
1.設(shè)置Debug標(biāo)識,選擇項(xiàng)目TARGETS->Build Settings->搜索swift flag,然后如下圖去做:
在代碼中需要這樣修改:
<pre> func WXLog<T>(Msg: T, file: String = #file, funcName: String = #function, lineNum: Int = #line) {
#if DEBUG
let fileName = (file as NSString).lastPathComponent
print("(fileName):((lineNum))-(Msg)")
#endif
}
</pre>
這樣就實(shí)現(xiàn)了打印在Debug模式下打印,在Release模式下不打印。