正如问题所述,我主要想知道我的代码是否在模拟器中运行,但也想知道正在运行或被模拟的特定iPhone版本.
编辑:我在问题名称中添加了"以编程方式"一词.我的问题的重点是能够根据正在运行的版本/模拟器动态地包含/排除代码,所以我真的在寻找能够为我提供此信息的预处理指令之类的东西.
正如问题所述,我主要想知道我的代码是否在模拟器中运行,但也想知道正在运行或被模拟的特定iPhone版本.
编辑:我在问题名称中添加了"以编程方式"一词.我的问题的重点是能够根据正在运行的版本/模拟器动态地包含/排除代码,所以我真的在寻找能够为我提供此信息的预处理指令之类的东西.
已经问过了,但标题完全不同.
What #defines are set up by Xcode when compiling for 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
取决于哪一个适合您的用例.