如何检测它是否在iPhone或iPad上运行?

时间:2014-09-24 10:19:20

标签: ios objective-c device

我有一个在iPhone上运行的应用程序,但是当我提交给Apple进行审核时,他们正在iPad上进行测试。我如何检测它是否在iPad上运行iPhone应用程序?我尝试使用UIUserInterfaceIdiomPad,但显然它仅适用于通用应用,但不适用于iPhone应用。

3 个答案:

答案 0 :(得分:3)

试试这个UIDevice类方法

 [[UIDevice currentDevice] name]              // like "S R Nayak's iPhone"
 [[UIDevice currentDevice] model]             // like @"iPhone", @"iPod Touch"
 [[UIDevice currentDevice] localizedModel]    // localized version of model
 [[UIDevice currentDevice] systemName]        // like @"iPhone OS"
 [[UIDevice currentDevice] systemVersion]     // like @"4.0"
 [[UIDevice currentDevice] uniqueIdentifier]  // UDID, a unique string to identify the device

否则你可以查看:

 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone &&
[[[UIDevice currentDevice] model] hasPrefix:@"iPad"]) {
// This app is an iPhone app but running on an iPad

}

答案 1 :(得分:2)

我退后一步,询问您需要哪些信息。

每个iPhone应用程序都可以在iPad或iPod Touch上运行。如果您假设您的应用可以拨打电话,那么这个假设显然是错误的。处理器可能出乎意料地快。但原则上,你的应用程序应该保持不变,并且Apple在iPad上运行它的事实不应该对你产生任何影响。有成千上万的iPhone应用程序在iPad上运行没有任何问题,没有任何开发人员的工作。

您的应用程序显然不会被告知用户界面是UIUserInterfaceIdiomPad,因为您有一个iPhone应用程序,并且它应该在iPad上显示iPhone UI。

答案 2 :(得分:0)

您可以从

获取信息
[[UIDevice currentDevice] model]

UIDevice