如何确定在模拟器中运行的设备?

时间:2014-09-25 17:04:34

标签: ios iphone xcode ipad

我查看了可用于确定运行应用的设备的所有代码,但是如何判断模拟器中正在运行的设备?

我之前从未遇到过这个问题,因为我总是有硬件要测试。现在iPhone 6/6 +已经用完了,我只有6+,但需要在模拟器中对6进行测试。当我使用this thread确定我正在运行的设备时,我得到的只是模拟器。

感谢。

1 个答案:

答案 0 :(得分:1)

虽然其他评论有一定意义,但您并不需要知道自己运行的设备,您需要了解的是,您有哪些功能。即便如此,如果您只想输出此消息,则显示iPhone 6而不是模拟器是错误的。只需为iPhone 6模型添加正确的代码,它应该可以工作,而不是在这里可能出错。

但如果您仍想支持此功能,我会检查每个设备的硬编码分辨率。从编程方面来看,6+和6之间没有区别,除了分辨率你可以使用它。但是要知道Simulator几乎可以选择任何大小,因此你必须有一个回退逻辑。

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

  • 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是否可用或类似。但是你无法彻底解决这个问题。