IOS #ifdef 的那些事兒

來源:互聯網
上載者:User

標籤:ios   debug   xcode   release   #ifdef   


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

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

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

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

#ifdef (1)

(2)

#else

(3)

#endif

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

 

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

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

#ifdef DEBUG

static NSString *const kFPBaseUrl =@"http://(1)";

#else

static NSString *const kFPBaseUrl =@"http://(2)";

#endif

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

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

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

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

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

 如何選擇?如 

 


 


 


    如,如果選擇 debug 編譯的話算是系統自行建立了#defineDEBUG然後下面你就知道了。。。

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


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

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

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


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





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.