2017-09-03 174 views
0

这是我在iPadPro 12.9英寸第二代模拟器上测试我的iPhone代码时得到的结果。没有差异吗?谢谢,大卫。iOS iPhone iPad模拟器

enter image description here

enter image description here

+0

你让你的项目是一个通用的应用程序?苹果文档指出,这个值应该用于通用应用程序(完全是?)。 https://developer.apple.com/documentation/uikit/uidevice/1620037-userinterfaceidiom?language=objc – hakkurishian

+0

不。我正在尝试向应用商店提交应用。这只是iPhone,但他们坚持它应该能够在iPad上运行(!!)。它从来没有发生过我,但我没有提交很多,而且没有在去年,所以也许它是合法的。无论如何,我必须知道我是否在iPad上运行,因此我可以制作拒绝页面。 –

回答

0

我会强烈建议使用此UIDeviceHardware,而不是检查接口成语: https://github.com/fahrulazmi/UIDeviceHardware/blob/master/UIDeviceHardware.m

NSString *platformString = [UIDeviceHardware platformString]; 

我一直在使用一段时间现在已经和它的工作原理完全适合我。

但是,在模拟器上使用它时会出现问题。在模拟器上运行时,该平台等于x86_64或i386,它将简单地返回iPad或iPhone。所以......我觉得你不会找到一个令人满意的结论,除非你在真实的设备上测试过这个结果,或者至少有人在真实的设备上测试它。

在你的情况,你会检查这两个平台字符串之一: 的 “iPad Pro的12.9英寸(WIFI)” 或 “iPad的临12.9英寸(蜂窝)” https://github.com/fahrulazmi/UIDeviceHardware/blob/master/UIDeviceHardware.m#L83-L84

一个好办法检查这些只是检查前缀: [platforString hasPrefix:"iPad Pro 12.9-inch"]

+0

我做了这样的事情,但它仍然很奇怪。 –