iOS 判斷模擬器和真機(jī)宏

#if TARGET_IPHONE_SIMULATOR//模擬器

#elif TARGET_OS_IPHONE//真機(jī)

#endif

TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE 是蘋果的兩個(gè)宏定義,

在真機(jī)sdk中位于iOS->usr/include/targetconditionals.h中,

在模擬器sdk中位于simulator->usr/include/targetconditionals.h中

(筆者此時(shí)使用的xcode版本為5.1,sdk版本是7.1)

仔細(xì)看其模擬器sdk中的定義:

#define TARGET_OS_IPHONE??????????? 1

#define TARGET_IPHONE_SIMULATOR???? 1

再來看真機(jī)sdk中的定義:

#define TARGET_OS_IPHONE??????????? 1

#define TARGET_IPHONE_SIMULATOR???? 0

可以發(fā)現(xiàn)兩者的區(qū)別僅在于TARGET_IPHONE_SIMULATOR的值,而TARGET_OS_IPHONE 則是一樣,都是真。

所以,我們區(qū)分真機(jī)模擬器的時(shí)候務(wù)必用TARGET_IPHONE_SIMULATOR來判斷,使用TARGET_OS_IPHONE將不會(huì)有效果。

這個(gè)和正常人的邏輯應(yīng)該是有沖突的吧(反正筆者是這么認(rèn)為的,汗)

所以大家使用的時(shí)候要注意一下,不要被蘋果給坑了哦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在我們的工程中,很多時(shí)候只希望在滿足一定條件的時(shí)候才進(jìn)行編譯,這是就需要用到條件編譯。 #if #elif #el...
    JerryLMJ閱讀 10,326評(píng)論 0 14
  • 轉(zhuǎn)自:http://blog.csdn.net/highning0007/article/details/3799...
    某人在閱讀 1,936評(píng)論 0 0
  • iOS開發(fā)過程中,使用的一些常用宏定義 字符串是否為空#define kStringIsEmpty(str) ([...
    goyohol閱讀 5,535評(píng)論 30 84
  • Xcode 工程的環(huán)境變量以及Build Settings參數(shù)設(shè)置 http://www.360doc.com/c...
    liusong007閱讀 2,191評(píng)論 1 3
  • 雖然幸福并非生活的全部,但我們應(yīng)該知道獲得幸福的一些路徑。特別是在浮躁的社會(huì),如何獲得內(nèi)心的幸福與快樂,應(yīng)是每個(gè)人...
    Jm94318閱讀 359評(píng)論 0 0

友情鏈接更多精彩內(nèi)容