OC內,我們往往做log打印時,會考慮一個Debug環境下打印,Release下控制不打印,以節約性能消耗。
OC我們可以這樣做:
在pch文件內,定義如下:
//打印日志 #ifdef DEBUG #define NSLog(...) NSLog(__VA_ARGS__) #else #define NSLog(...) #endif
在Swift內要實現同樣效果,我們依然可以同理實現:
1、不同於OC,swift沒有pch文件,但Swift中只要在一個文件中聲明了一個公開的方法, 其他文件都是可以訪問到的。
2、我們定義一個類文件,里面可以用來寫公共方法等
在文件里加上如下:
/// 直接打印出內容 /// /// - Parameter message: <#message description#> func YJLog<T>(message : T) { #if DEBUG print("\(message)") #endif } /// 打印內容,並包含類名和打印所在行數 /// /// - Parameters: /// - message: 打印消息 /// - file: 打印所屬類 /// - lineNumber: 打印語句所在行數 func YJLogLine<T>(message : T, file : String = #file, lineNumber : Int = #line) { #if DEBUG let fileName = (file as NSString).lastPathComponent print("[\(fileName):line:\(lineNumber)]- \(message)") #endif }
其中,有兩個方法:
第一個是只打印內容,效果和print一樣。
第二個是包括打印類和打印行,類似下圖:
其中:
#if DEBUG 這個是系統默認加好的,我們不用額外定義這個flag。