正如问题所述,我主要想知道我的代码是否在模拟器中运行,但也有兴趣了解正在运行或正在模拟的特定 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
取决于哪个适合您的用例。
https://stackoverflow.com/questions/458304/
相关文章:
ios - 使用 Storyboard 以编程方式设置初始 View Controller
ios - 如何强制 NSLocalizedString 使用特定语言
ios - 总是将 self 的弱引用传递到 ARC 中的 block 中?
ios - 不能在 Objective-C 中使用 Swift 类
objective-c - 对于 Objective-C 中用于访问 NSMutable 字典的每个
objective-c - 将 NSDate 转换为 NSString
ios - 解释 iOS7 中自动调整 ScrollView 插入、扩展布局包含不透明条、边缘For