如何测试我的设备是iphone 4还是iphone 5

时间:2014-07-10 01:38:15

标签: ios iphone

我做了一个游戏,我有一个方法,我想根据它是iphone 4还是5来运行。有没有人知道这样做的方法。

5 个答案:

答案 0 :(得分:2)

您可以使用以下代码:

#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)
#define IS_RETINA ([[UIScreen mainScreen] scale] == 2.0f)

答案 1 :(得分:1)

   if ([[UIScreen mainScreen] bounds].size.height == 568)
  {
   for iphone 5,5c and 5s
  }
  else
  {
  for other device 4 4s
  }

答案 2 :(得分:0)

我通常在“App Name-Prefix.pch”文件中添加这些宏定义(因此可以在任何地方访问它们而无需导入该文件):

#define IS_iPHONE_5 [[UIScreen mainScreen] bounds].size.height    == 568
#define IS_iPHONE   [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone
#define IS_iPAD     [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad

#define iDEVICE_TYPE (IS_iPAD) ? @"iPad" : ((IS_iPHONE_5) ? @"iPhone5" : @"iPhone")

如果我使用的是.xib文件,我会为每个视图控制器创建3个不同的.xib-s,我将~iPhone,~iPhone5和~iPad放在他们名字的末尾。当我需要加载相应的笔尖时,我只写:

NSString *nameOfNib = [NSString stringWithFormat:@"ADWRootViewController~%@", iDEVICE_TYPE];

ADWRootViewController *rootVC = [[ADWRootViewController alloc] initWithNibName:nameOfNib
                                                                        bundle:nil];

我希望它有所帮助。请注意,我不会在我的代码中检查它是否属于Retina或非Retina设备。

答案 3 :(得分:0)

可能您正在寻找[[UIDevice currentDevice] model]

答案 4 :(得分:-1)

使用[[[UIDevice currentDevice] systemVersion] floatValue]获取版本信息。