如何知道目标C代码是否在iOS模拟器中运行?

问题描述:

我试过如何知道目标C代码是否在iOS模拟器中运行?

#ifdef TARGET_IPHONE_SIMULATOR 
    static BOOL isSimulator = YES; 
#endif 

但对于器件和模拟器中,isSimulator变量总是出来为1

我需要一种方法来找出如果代码运行的是iOS上的模拟器或一个装置。

+1

正如你可以看到这个答案http://stackoverflow.com/questions/5775420/programmatically-detect-if-app-is-being-run-on-device-or-simulator你可以检查运行你的应用程序的位置在运行时(不像编译时那样):#define SIM(x)if ...(by Fernando Cervantes)。 – stosha 2015-04-04 01:18:11

您的代码段只检查是否TARGET_IPHONE_SIMULATOR定义(即使它定义为0)

尝试检查这样来代替: (在#ERROR只会显示为在Xcode编译错误)

#if TARGET_IPHONE_SIMULATOR 
#error Simulator 
#else 
#error Device 
#endif