iOS開發3- 巧妙使用編譯宏定義讓代碼在不同的情況下執行

來源:互聯網
上載者:User

關於先行編譯宏 #ifdef #else #endif

#ifdef ****flag      //代碼1  else      //代碼2  #endif

意思是 如果標識符****flag已被#define命令定義過,則對代碼1進行編譯,否則對代碼2進行編譯。

同時也有#ifndef,則與#ifdef剛好相反。

(1)OPTIMIZE :
用於release和debug的判斷,當選擇了OPTIMIZE 時,可以讓代碼在release時執行,在debug時不執行。
樣本如下:

#ifndef __OPTIMIZE__      //這裡執行的是debug模式下  else      //這裡執行的是release模式下  #endif

(2)i386x86_64 :用於模擬器環境和真機環境的判斷。滿足該條件的代碼只在模擬器下執行。範例程式碼如下:

#if defined (__i386__) || defined (__x86_64__)      //模擬器下執行  #else      //真機下執行  #endif

(3)__IPHONE_OS_VERSION_MAX_ALLOWED :當前編譯的SDK版本,可以與__IPHONE_9_0等宏定義進行比較,進行不同版本下代碼的執行。樣本如下:

if (__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_9_0) {          //如果當前SDK版本為9.0是執行這裡的代碼  }else{          //否則執行這裡  }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.