原文網址:https://www.jianshu.com/p/de222deded93
我們在使用代碼調試中 經常使用print打印函數,有時打印的多了,不好定位到時哪一控制器,哪一行代碼,我們今日就是解決這個問題
-
獲取打印的所在文件
在Swift中獲取 文件的命的函數是 #file 轉化成 OC字符串獲取
let file = (#file as NSString).lastPathComponent;
print("\(file)-123");
-
獲取打印的方法名稱 #function函數
let funcName = #function;
print("\(file):\(funcName)--123");
//打印結果: ViewController.swift:viewDidLoad()--123
-
獲取代碼所在的行數 #line函數
let file = (#file as NSString).lastPathComponent;
print("\(file):\(#line)");
-
寫一個全局的函數 定義打印
///全局函數 T是泛型 傳入不同的參數 func CCLog<T>(_ message:T,file:String = #file,funcName:String = #function,lineNum:Int = #line){ let file = (file as NSString).lastPathComponent; // 文件名:行數---要打印的信息 print("\(file):(\(lineNum))--\(message)"); }
-
調整在哪一個狀態下打印 (Dbug 和Release)

配置文件.jpg
定義 全局函數 添加#if DEBUG #endif
判斷
///全局函數 func CCLog<T>(_ message:T,file:String = #file,funcName:String = #function,lineNum:Int = #line){ #if DEBUG let file = (file as NSString).lastPathComponent; print("\(file):(\(lineNum))--\(message)"); #endif }