【问题标题】:How to determine the device running in the simulator?如何确定模拟器中运行的设备?
【发布时间】:2014-11-20 13:25:35
【问题描述】:

我查看了所有可用于确定运行应用程序的设备的代码,但你如何知道模拟器中运行的是什么设备?

我以前从未遇到过这个问题,因为我一直有硬件可供测试。现在 iPhone 6/6+ 出来了,我只有 6+,但需要在模拟器中测试 6。当我使用this thread 来确定我在哪个设备上运行时,我得到的只是模拟器。

谢谢。

【问题讨论】:

  • 你的目标是什么?为什么需要了解设备?您在运行时无法确定哪些特征?
  • 尺码等级怎么样?这就是它们的目的--
  • 在下面查看我的评论。这与屏幕尺寸或类别无关。
  • @MichaelGaines 更新您的问题而不是将 cmets 中的有用信息分散到答案中会很有帮助。潜在的回答者更有可能看到问题中的信息。

标签: ios iphone xcode ipad


【解决方案1】:

虽然其他 cmets 也有道理,但您并不需要真正了解您在什么设备上运行,您需要知道的是,您有哪些可用功能。即便如此,如果你只是想输出这条消息,那么显示 iPhone 6 而不是 Simulator 是错误的。只需为 iPhone 6 型号添加正确的代码,它应该可以工作,这里不会出错。

但如果您仍想支持此功能,我会检查每个设备的硬编码分辨率。由于以编程方式,6+ 和 6 之间没有区别,除了分辨率之外,您可以使用它。但是要知道,模拟器几乎可以是您选择的任何大小,因此您必须为此设置一个备用逻辑。

所以分辨率是(在逻辑点上):

  • 320 x 480 - iPhone 4/4S
  • 320 x 568 - iPhone 5/5C/5S
  • 375 x 667 - iPhone 6
  • 414 x 736 - iPhone 6+

从这里你已经可以看到分辨率确实不是最好的方法,因为你看不出 iPhone 5 手机和 iPhone 4 之间的区别。你可以添加额外的检查来解决这个问题,你可以分开iPhone 5S 通过检查 Touch ID 是否可用或类似的。但是你将无法完全解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多