在項(xiàng)目開(kāi)發(fā)中調(diào)試程序或者確定一些數(shù)據(jù)時(shí)要經(jīng)常用到打印,那我們?nèi)绾问勾蛴∮闷饋?lái)更方便,這需要自定義打印。下面我們開(kāi)始進(jìn)行自定義Log。
如果當(dāng)我們看到打印時(shí)就知道這個(gè)打印是在哪個(gè)文件中,哪個(gè)方法,哪一行,這樣是不是更方便我們查看呢,那么首先我們要獲取該打印所在文件,所在方法,所在行。
獲取打印所在文件
<pre>let file = #file</pre>
獲取打印所在的方法
<pre>let funcName = #function</pre>
獲得打印所在行數(shù)
<pre>llet lineNum = #line</pre>
對(duì)于獲取打印所在文件,我們肯定不希望在打印的時(shí)候看到所有文件路徑信息,而只要知道文件類名就可以了,那么獲取打印所在文件的代碼需要做個(gè)處理,這樣就獲取那個(gè)文件類名。
<pre>let file = (#file as NSString).lastPathComponent</pre>
我們知道了這些,下面就可以封裝一個(gè)打印的方法
<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>
我們都知道開(kāi)發(fā)項(xiàng)目時(shí)一般在調(diào)試的時(shí)候用的都是Debug模式,上傳到AppStore時(shí)一般都是Release模式,那么怎么樣讓打印在Debug模式下打印,在Release模式下不打印呢?需要這樣做:
1.設(shè)置Debug標(biāo)識(shí),選擇項(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模式下不打印。