问题描述

一般项目中,可以使用宏定义来判断模拟器还是真机,这无疑是有效的。

  1. #if TARGET_IPHONE_SIMULATOR
  2. #define SIMULATOR 1
  3. #elif TARGET_OS_IPHONE
  4. #define SIMULATOR 0
  5. #endif

但是宏是预编译时发生作用的,那么在静态库中是否还能够使用宏定义来区分模拟器与真机?

分析思路

宏定义确实是预编译时发生作用的,但是静态库编译出来的.a文件通常是分为模拟器与真机两个的,及时通过lipo合并为fat.a文件,实际运行调用时所使用的.a文件也不是同一个.

验证与结论

通过试验验证,上面的代码确实能够区分模拟器与真机,即可以在静态库中使用宏定义区分iPhone模拟器与真机

最新文章

  1. 原生javascript 实现 animate
  2. angularJs
  3. php 7.0 安装mcrypt
  4. mysqlroot密码忘记了,修改root密码
  5. 土法炼钢:怎么实现一个简单的B+Tree In-Disk
  6. 用Wget进行下载
  7. maven项目启动
  8. jquery中ajax跨域提交的时候会有2次请求
  9. mybatis:SQL拦截器
  10. Nginx实现负载均衡的简单案例
  11. Spring Boot 构建电商基础秒杀项目 (二) 使用 Spring MVC 方式获取用户信息
  12. bzoj1205: [HNOI2005]星际贸易
  13. Windows Server 2008 R2下将JBoss安装成windows系统服务
  14. Linux下编写动态链接库
  15. LSTM网络应用于DGA域名识别--文献翻译--更新中
  16. “Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常。-解决方法
  17. 无线路由和无线AP的区别
  18. 什么是spark(二) RDD
  19. Apache 在不同平台和版本上的默认文件布局
  20. BZOJ2453:维护队列——题解

热门文章

  1. fuck'em
  2. web项目设计与开发——DBHelper2
  3. DS4700存储日志收集
  4. 【转】性能测试设计和LR原理的探讨
  5. 万网免费主机wordpress快速建站教程-万网主机申请
  6. 使用T4模板为EF框架添加实体根据数据库自动生成字段注释的功能
  7. Js 学习资料
  8. 关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection
  9. 20151211jquery ajax进阶代码备份
  10. spring线程池配置