iOS 靜態庫中使用宏定義區分iPhone模擬器與真機

來源:互聯網
上載者:User
問題描述

    一般項目中,可以使用宏定義來判斷模擬器還是真機,這無疑是有效。

#if TARGET_IPHONE_SIMULATOR#define SIMULATOR 1#elif TARGET_OS_IPHONE#define SIMULATOR 0#endif

    但是宏是先行編譯時發生作用的,那麼在靜態庫中是否還能夠使用宏定義來區分模擬器與真機?

分析思路

    宏定義確實是先行編譯時發生作用的,但是靜態庫編譯出來的.a檔案通常是分為模擬器與真機兩個的,及時通過lipo合并為fat.a檔案,實際運行調用時所使用的.a檔案也不是同一個.

驗證與結論

    通過實驗驗證,上面的代碼確實能夠區分模擬器與真機,即可以在靜態庫中使用宏定義區分iPhone模擬器與真機

相關文章

聯繫我們

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