当前位置: 首页 > 面试题库 >

如何以编程方式确定我的应用程序是否在iphone模拟器中运行?

孔宇
2023-03-14
问题内容

正如问题所指出的那样,我主要想知道我的代码是否正在模拟器中运行,但也想知道正在运行或正在模拟的特定iphone版本。

编辑:我在问题名称中添加了“以编程方式”一词。我的问题的关键是能够根据正在运行的版本/模拟器动态地包含/排除代码,因此我真的在寻找可以提供此信息的预处理器指令之类的东西。


问题答案:

已经问过,但标题却大不相同。

为iPhone编译时Xcode设置了什么#define

我将从那里重复我的回答:

在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

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



 类似资料:
  • 问题内容: 在C语言中,如何以编程方式找出Linux / Ubuntu上是否已在运行某个进程,以避免该进程两次启动?我正在寻找类似于pidof的东西。 问题答案: 您可以进入这些条目并在文件中检查过程,也可以在链接上执行操作(以下使用第一种方法)。

  • 我们以编程方式安装了应用程序。 如果应用程序已安装在设备中,则应用程序将自动打开。 指引我。我完全不知道。谢谢。

  • 我需要检查由Wildfly 8.2部署的应用程序的部署状态。1以编程方式(最好是java)。就我而言,有多种方法可以实现这一目标: 监视部署文件夹中的信号量文件(如部署时为war文件创建了已部署文件)。 通过调用在war文件成功部署时应该可用的rest服务进行检查 使用JMX mbean 可能还有其他方法,我还不知道。但我更感兴趣的是学习使用JMX MBean的方法。但不幸的是,我的在线搜索没有给

  • 如果我们使用此代码,我们会看到一条消息:搜索GPS。然而,仅示出了GPS符号;GPS实际上不起作用: 为什么没用?以及如何使其正确工作?

  • 我被这个错误困住了,当我在android上做构建时,它工作得很好,但是当我在IOS模拟器上运行我的应用程序时,它却显示我这个错误。我无法找出我的代码中的实际问题是什么。请帮我弄清楚这个情况。 我的flutter sdk版本是1.22.4 无法为模拟器生成应用程序。 在iPhone 11 Pro Max上启动应用程序时出错。