成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS開發學習 根據Debug和Release狀態變化來屏蔽日志輸出

移動開發 iOS
本文介紹的是iOS開發學習 根據Debug和Release狀態變化來屏蔽日志輸出,很詳細的為友們介紹內容,先來看內容。

iOS開發學習 根據DebugRelease狀態變化來屏蔽日志輸出,今天在這里分享一個很實用的小技巧。 我們平時在開發應用的時候,經常會用到NSLog來調試我們的程序,而隨著項目越來越大,這些用于調試的日志輸出就會變得很難管理。 我們在發布正式版的時候一定要屏蔽掉所有后臺輸出,因為這些輸出還是比較消耗系統資源的。 

往往到了這個時候,我們不得不去一行一行的找到NSLog調用,然后注釋掉。 這樣做在項目小的時候還比較有效,但隨著項目規模的增長,就會變得越來越難控制。 下面就給大家介紹一個簡單的方法,讓我們在生成Release版本時不需要進行任何更改即可屏蔽所有的Log輸出。

1. 首先我們先要定義這樣一段預處理命令,文件名隨便起,例如 CLog.h

  1. #ifdef DEBUG    
  2. #define CLog(format, ...) NSLog(format, ## __VA_ARGS__)    
  3. #else    
  4. #define CLog(format, ...)    
  5. #endif  

這里我們判斷DEBUG這個宏是否定義,如果有定義我們就將這個CLog宏替換成NSLog調用,而如果沒有定義過DEBUG標志我們就直接跳過。這點應該不難理解。

2. 檢查DEBUG標志是否正確定義,xcode一般會在debug運行配置項里面已經定義號了DEBUG標志,如果沒定義我們就自己寫上,以我的xcode 4 為例。

找到PreProcessor Macros 這個屬性,對于Debug配置我們給他寫上DEBUG,而在Release配置中把它留空。 這樣我們剛才那段預處理命令就可以根據這個標志來判斷我們編譯的時調試版本還是發布版本,從而控制NSLog的輸出。 (因為xcode 4 會把debug/release 兩個配置項同時對比展現出來,而3.x版本的只能分別設置, 如果你用的時xcode 3.x 開發工具, 那么就分別對Debug/Release 都檢查一下)。

3. 到了這里我們這個判斷工作就都進行完了,不過這里還有一點比較麻煩,就是我們如果想實用CLog宏,就必須要導入 CLog.h 這個頭文件。 不過xcode為我們提供了一種非常巧妙的解決辦法。 我們自己看一下項目里的文件,是不是有一個叫做 xxx-prefix.pch 的文件,只要注意到pch這個擴展名就可以了。 這個文件是做什么用的呢? 下面是一個pch文件的樣本:

  1. //    
  2. // Prefix header for all source files     
  3. //    
  4. #import <Availability.h>    
  5. #ifndef __IPHONE_3_0    
  6. #warning "This project uses features only available in iPhone SDK 3.0 and later."    
  7. #endif    
  8. #ifdef __OBJC__    
  9.     #import <UIKit/UIKit.h>    
  10.     #import <Foundation/Foundation.h>    
  11. #endif  

這里引入了一些頭文件, 其實是xcode 的一種預編譯機制,我們在編譯一個項目的時候,會有很多常用的源文件,并且這些代碼文件幾乎不被修改,所以xcode對這些文件只在早期進行一次編譯,以便我們以后的多次構建過程中反復實用。 例如這里的UIKit和Foundation ,這樣的機制可以加快我們每次構建項目的速度。

當然這里我們不必太深究它,知道它的作用后,我們就可以利用它來為我們的開發提供便利。 我們只需要將剛剛建立的CLog.h 也在這里面引入一下,這樣我們項目中的所有文件就都能夠訪問到我們剛剛定義的CLog宏了。 下面是完成后的pch文件:

  1. #import <Availability.h>   
  2. #ifndef __IPHONE_3_0    
  3. #warning "This project uses features only available in iPhone SDK 3.0 and later."    
  4. #endif    
  5. #ifdef __OBJC__    
  6.     #import <UIKit/UIKit.h>    
  7.     #import <Foundation/Foundation.h>    
  8.     #import "CLog.h"    
  9. #endif  

這樣,我們的CLog就完成了,現在可以在任何一個源文件中實用CLog宏來輸出日志,預處理命令會自動判斷當前的編譯配置,如果是Debug,就會輸出日志,反之則什么都不會輸出。

小結:iOS開發學習 根據DebugRelease狀態變化來屏蔽日志輸出的內容介紹完了,希望本文對你有所幫助。

責任編輯:zhaolei 來源: 博客園
相關推薦

2011-08-08 16:45:02

iPhone NSLog Release

2022-03-08 06:31:41

DebugRelease

2016-03-01 14:37:38

iOSLLDB調試技巧

2013-07-22 14:43:57

iOS開發ASIHTTPRequ

2013-07-29 04:57:47

iOS開發iOS開發學習時間設置和格式輸出

2015-01-06 09:11:54

TCP

2021-02-06 21:57:40

Debug模式Release

2014-06-23 10:58:48

2011-08-01 09:34:32

Xcode Xcode 4 編譯器

2023-11-29 16:29:09

線程java

2015-07-13 11:36:26

JavaavaScriptGroovy

2017-03-13 08:40:45

AndroidDebugBuildConfig

2014-04-22 10:19:40

objection模塊化開發iOS

2022-12-05 11:44:49

PrintDebugIceCream

2021-06-01 21:23:43

嵌入式開發日志

2023-10-26 07:15:46

2010-05-24 13:57:27

swap分區

2010-04-14 11:14:35

Oracle屏蔽英文

2021-12-29 06:54:24

Debug Print工具

2011-08-22 15:43:08

IOS開發數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产美女永久免费无遮挡 | 奇色影视 | 欧美日韩国产高清 | 色综合激情 | 7777在线视频免费播放 | 日韩一二区在线 | 色婷婷精品| 草久在线 | 亚洲一区二区高清 | 一级黄大片 | 日韩一区二区在线视频 | 五月天婷婷激情 | 欧美激情久久久 | 国产视频1区 | 国产精品精品视频 | 久久久久久国产精品久久 | 欧美日韩精品综合 | 欧美久久一区二区三区 | 亚洲欧美日韩国产综合 | 日韩中文字幕免费 | 免费视频中文字幕 | 97视频在线观看免费 | 97国产精品 | 黄色在线免费观看视频网站 | 成人不卡视频 | 亚洲第一成人影院 | 美女视频一区二区 | 日韩中文字幕视频 | 四虎永久免费地址 | 国产亚洲欧美另类一区二区三区 | 国产偷录叫床高潮录音 | 在线天堂免费中文字幕视频 | 欧美11一13sex性hd | 日韩在线大片 | 久久久久久a | 日本电影免费完整观看 | 久久99成人 | 天天天久久久 | 日韩视频区 | 中文字幕在线一 | 久久精品国产一区二区电影 |