正如问题所述,我主要想知道我的代码是否在模拟器中运行,但也有兴趣了解正在运行或正在模拟的特定 iphone 版本。
编辑:我在问题名称中添加了“以编程方式”这个词。我的问题的重点是能够根据正在运行的版本/模拟器动态包含/排除代码,所以我真的在寻找可以为我提供此信息的预处理器指令之类的东西。
它位于“有条件地编译源代码”下的 SDK 文档中
相关定义为TARGET_OS_SIMULATOR,定义在iOS框架内的/usr/include/TargetConditionals.h中。在工具链的早期版本中,您必须编写:
#include "TargetConditionals.h"
但这在当前(Xcode 6/iOS8)工具链上不再需要。
因此,例如,如果你想检查你是否在设备上运行,你应该这样做
#if TARGET_OS_SIMULATOR // Simulator-specific code #else // Device-specific code #endif
取决于哪个适合您的用例。