IOS #ifdef 的那些事兒 – iPhone手機開發技術文章 iPhone軟體開發教學課程

格式有點亂,整瞭幾次都整不過來,大傢將就一下吧。

這篇文章是本人(本人是菜鳥)在第一次接觸上線項目時遇到的一個讓我記憶深刻的問題。

如果你是大神,那麼請繞過,這隻是很膚淺的知識點,寫給自己也分享給大傢。

相信大傢對於下面的語句一定不陌生。

#ifdef (1)

(2)

#else

(3)

#endif

但是我在這裡還是稍微解釋一下吧(顯得專業),如果在這個式子之前有#define(1)的話執行(2)否則執行(3)

如果隻是這一點的話那麼就對不起各位觀眾瞭。下面就要說我遇到的問題瞭,

我最近接觸的項目代碼中有這樣幾句

#ifdef DEBUG

static NSString *const kFPBaseUrl =@”https://(1)”;

#else

static NSString *const kFPBaseUrl =@”https://(2)”;

#endif

相信基本上每個項目裡面都會有這幾句

咋一看很簡單,沒錯,就是很簡單,就是一個測試服務器地址和生產服務器地址的切換。

但是問題就出在#ifdef DEBUG上,由於要改成生產服務器測試,所以我就開始找#defineDEBUG

但是我找遍瞭整個項目也沒有找到,當時我就納悶瞭。那要怎麼去切換?後來我得人指點明白瞭。

原來這個#defineDEBUG可以算是Xcode集成的,其實當我們運行項目的時候可以有選擇是運行
debug 或 release 版本。

如何選擇?如下圖

vcD4KPHA+IDxpbWcgc3JjPQ==”https://www.aiwalls.com/uploadfile/Collfiles/20140508/2014050808314271.jpg” alt=”\”>

n塊ズ^n?喎?https://www.aiwalls.com/os/系統自行創建瞭#defineDEBUG然後下面你就知道瞭。。。

對於這個問題可能在有經驗的人來說很簡單,但是對於我們沒有經驗的或者沒註意過的真還是有點幫助的。

在這裡我還要說一點的是,關於在項目中肯定會有測試的服務器和生產的服務器,請求時用得地址接口肯定也不一樣。

如果你不想麻煩在需要切換服務器是改動多個地方(而且容易出現錯誤),那麼我建議你就隻在這一個地方涉及請求接口

的更換和修改。這樣做的好處就是改一個地方,所有的都會變,而且不容易出錯,你還有什麼理由不註意一下呢?

好瞭,今天就到這裡。有錯誤歡迎指正,交流
—— LC.莫流觴

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *