格式有點亂,整了幾次都整不過來,大家将就一下吧。
這篇文章是本人(本人是菜鳥)在第一次接觸上線項目時遇到的一個讓我記憶深刻的問題。
如果你是大神,那麼請繞過,這隻是很膚淺的知識點,寫給自己也分享給大家。
相信大家對于下面的語句一定不陌生。
#ifdef (1)
(2)
#else
(3)
#endif
但是我在這裡還是稍微解釋一下吧(顯得專業),如果在這個式子之前有#define(1)的話執行(2)否則執行(3)
如果隻是這一點的話那麼就對不起各位觀衆了。下面就要說我遇到的問題了,
我最近接觸的項目代碼中有這樣幾句
#ifdef debug
static nsstring *const kfpbaseurl =@"http://(1)";
static nsstring *const kfpbaseurl =@"http://(2)";
相信基本上每個項目裡面都會有這幾句
咋一看很簡單,沒錯,就是很簡單,就是一個測試伺服器位址和生産伺服器位址的切換。
但是問題就出在#ifdef debug上,由于要改成生産伺服器測試,是以我就開始找#definedebug
但是我找遍了整個項目也沒有找到,當時我就納悶了。那要怎麼去切換?後來我得人指點明白了。
原來這個#definedebug可以算是xcode內建的,其實當我們運作項目的時候可以有選擇是運作
debug 或 release 版本。
如何選擇?如下圖
如上圖,如果選擇 debug 編譯的話算是系統自行建立了#definedebug然後下面你就知道了。。。
對于這個問題可能在有經驗的人來說很簡單,但是對于我們沒有經驗的或者沒注意過的真還是有點幫助的。
在這裡我還要說一點的是,關于在項目中肯定會有測試的伺服器和生産的伺服器,請求時用得位址接口肯定也不一樣。
如果你不想麻煩在需要切換伺服器是改動多個地方(而且容易出現錯誤),那麼我建議你就隻在這一個地方涉及請求接口
的更換和修改。這樣做的好處就是改一個地方,所有的都會變,而且不容易出錯,你還有什麼理由不注意一下呢?
好了,今天就到這裡。有錯誤歡迎指正,交流
—— lc.莫流觞