1. 程式人生 > >[iOS/Swift]在Release模式下(或者Archive時)關閉後臺列印操作

[iOS/Swift]在Release模式下(或者Archive時)關閉後臺列印操作

在 Object-C 的工程中,預設會在 Build Settings 中的 Apple LLVM x.x - Preprocessing 的 Preprocessor Maros / Debug 中新增 “DEBUG=1“ 的定義,這樣我們就可以通過 #ifdef、 #ifndef 等預編譯指令來區分Debug模式和Release模式下的不同行為(這是不是也算多型的一種,^_^)

// 在 Relase 模式下,關閉後臺列印
#ifndef DEBUG
    #define NSLog(...) {}
#endif
這段程式碼可以寫在pch檔案(預編譯標頭檔案)中,如果沒有pch檔案,可以手動去建立這個檔案。具體在 Build Settings 中搜索 "Prefix Header" 就懂了。

在 Swift 的工程中,我們需要手動在 Build Settings 中的 Swift Compiler - Custom Flags / Debug 中新增 “-D DEBUG” 後,才能使用 #if 指令來區分 Debug和Release模式下的不同行為(之後不知道Apple會不會改,但是目前是需要手動新增的)

// MARK: - 在 Relase 模式下,關閉後臺列印
#if DEBUG
    #else
    func print(object: Any) {}
    func println(object: Any) {}
    func println() {}
    
    func NSLog(format: String, args: CVarArgType...) {}
#endif

有事需要複製程式碼不能識別,需要在#前面做一些回車操作才行。  鬱悶~~

題外話:至於在Release的時候不關閉後臺相關列印,是否會影響程式效能,或者包的大小,或者其他的影響!小編目前還沒有仔細研究過,如果這方便的資料,會新增到本文內!^_^