iOS 静态库中使用宏定义区分iPhone模拟器与真机---

问题描述

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

 

[python] view plaincopy
  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模拟器与真机

posted on 2015-10-21 13:55  🌞Bob  阅读(696)  评论(0编辑  收藏  举报

导航