#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í)候要注意一下,不要被蘋果給坑了哦~