iOS 判断模拟器和真机宏

#if TARGET_IPHONE_SIMULATOR//模拟器

#elif TARGET_OS_IPHONE//真机

#endif

TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE 是苹果的两个宏定义,

在真机sdk中位于iOS->usr/include/targetconditionals.h中,

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

(笔者此时使用的xcode版本为5.1,sdk版本是7.1)

仔细看其模拟器sdk中的定义:

#define TARGET_OS_IPHONE            1

#define TARGET_IPHONE_SIMULATOR     1

再来看真机sdk中的定义:

#define TARGET_OS_IPHONE            1

#define TARGET_IPHONE_SIMULATOR     0

可以发现两者的区别仅在于TARGET_IPHONE_SIMULATOR的值,而TARGET_OS_IPHONE 则是一样,都是真。

所以,我们区分真机模拟器的时候务必用TARGET_IPHONE_SIMULATOR来判断,使用TARGET_OS_IPHONE将不会有效果。

这个和正常人的逻辑应该是有冲突的吧(反正笔者是这么认为的,汗)

所以大家使用的时候要注意一下,不要被苹果给坑了哦~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在我们的工程中,很多时候只希望在满足一定条件的时候才进行编译,这是就需要用到条件编译。 #if #elif #el...
    JerryLMJ阅读 10,264评论 0 14
  • 转自:http://blog.csdn.net/highning0007/article/details/3799...
    某人在阅读 1,770评论 0 0
  • iOS开发过程中,使用的一些常用宏定义 字符串是否为空#define kStringIsEmpty(str) ([...
    goyohol阅读 5,412评论 30 85
  • Xcode 工程的环境变量以及Build Settings参数设置 http://www.360doc.com/c...
    liusong007阅读 2,140评论 1 3
  • 虽然幸福并非生活的全部,但我们应该知道获得幸福的一些路径。特别是在浮躁的社会,如何获得内心的幸福与快乐,应是每个人...
    Jm94318阅读 342评论 0 0