ios - 如何以编程方式确定我的应用程序是否在 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

取决于哪个适合您的用例。

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

objective-c - 编译警告 : no rule to process file for a

objective-c - UILabel中如何控制行距

objective-c - 如何将 Swift 代码导入到 Objective-C?