IOS開發筆記(11)IOS開發之NSLog使用技巧

前提:在 XCode作開發調試時每每須要打印一些調試信息作debug用,你們知道當打印信息的地方多了以後在模擬器上跑可能不會有什麼問題,由於模擬器用的是電 腦的硬件可是當應用跑在設備上時這些輸出語句會在很大程度上影響應用的性能,針對這種問題能夠寫一些宏來控制這些調試信息的輸出。


在release版本禁止輸出NSLog內容

 

由於NSLog的輸出仍是比較消耗系統資源的,並且輸出的數據也可能會暴露出App裏的保密數據,因此發佈正式版時須要把這些輸出所有屏蔽掉。app

咱們能夠在發佈版本前先把全部NSLog語句註釋掉,等之後要調試時,再取消這些註釋,這實在是一件無趣而耗時的事!還好,還有更優雅的解決方法,就是在 項目的prefix.pch文件里加入下面一段代碼,加入後,NSLog就只在Debug下有輸出,Release下不輸出了。框架


如何實現:

在-Prefix.pch(pch 全稱是「precompiled header」,也就是預編譯頭文件,該文件裏存放的工程中一些不常被修改的代碼,好比經常使用的框架頭文件,這樣作的目的提升編譯器編譯速度。咱們知道當我 們修改一個工程中某個文件代碼時候,編譯器並非從新編譯全部全部文件,而是編譯改動過文件的,假如pch中某個文件修改了,那麼pch整個文件裏包含的 的其餘文件也會從新編譯一次,這樣就會消耗大量時間,因此它裏面添加的文件最好是是不多變更或不變更的頭文件或者是預編譯的代碼片斷;)文件中添加

#ifdef DEBUG // 調試狀態性能

 

#define MyLog(...) NSLog(__VA_ARGS__)ui

 

#else // 發佈狀態debug

 

#define MyLog(...)調試

 

#endif資源


上段代碼的意思就是 用宏指令作一個判斷,若是DEBUG爲真,則編譯#ifdef到#endif宏定義,不然編譯器就不編譯;開發



這個DEBUG在哪設置呢,get

在 "Target > Build Settings > Preprocessor Macros > Debug" 裏有一個"DEBUG=1"。編譯器

設置爲Debug模式下,Product-->Scheme-->SchemeEdit Scheme
設置Build Configuration成Debug時,就能夠打印nslog了。
設置Release,發佈app版本的時候就不會打印了,提升了性能
相關文章
相關標籤/搜索