如何检查设备是iPhone 5?

我怎样才能检查一个应用程序运行在iPhone 5上,然后做些什么?

你可能会关心窗口大小,而不是制造/模型,这将做到:

CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; if (screenRect.size.height == 568) { // this is an iPhone 5+ } 
 #define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) 

然后在代码中:

 if (IS_IPHONE_5) { //is iphone 5 } 

您可以通过检查屏幕分辨率来做到这一点,或者您可以使用以下方法:

 #import "sys/utsname.h" 

它给你每个设备的标识符。 在这里看到我的答案: 识别设备

使用屏幕是好的。

 #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0f) 

没有epsilon检查是必需的

我们可以直接把这个方法放在常量文件中,并可以使用任何使用define的地方

 #define ISIPHONE5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON ) #define HEIGHT (ISIPHONE5 ? 60:145) 

或者可以使用

  #define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES) 

我们也可以通过下面的方式检查IOS

 #define IOS_OLDER_THAN_6 ([[[UIDevice currentDevice] systemVersion] floatValue] < 6.0 ) #define IOS_NEWER_OR_EQUAL_TO_6 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0 ) 

你可以检查你的设备的iOS版本,如果是6.0,那么它的iPhone 5 …..

这是代码

 double osVersion = [[[UIDevice currentDevice] systemVersion] doubleValue]; NSLog(@"OSVersion: %f", osVersion); if (osVersion == 6.0) { //Paste your code here..... }