2012-11-28 63 views
0

将是什么下面的代码的输出:设备类型的文本适用于iPhone 4S和iPhone 5

NSString *deviceType = [UIDevice currentDevice].model; 
NSLog(@"Device Type: %@", deviceType); 

在iPhone 4,它会打印出“iPhone”,但在iPhone 4S或iPhone 5会是怎样的输出?我没有iPhone 4S或5设备。但我需要知道它在iPhone的所有版本中实现呼叫功能。

谢谢。

回答

3

在iPhone 4中,它会打印“iPhone”,但在iPhone 4S或iPhone 5中会输出什么?

也是“iPhone”。

documentation

+3

有趣的答案不错1 :) @ H2CO3 – Rushabh

+1

OP真的让你努力工作在这一个没有他!无论如何,正确的+1。 –

+0

在它说的文档中?你确定它会在iPhone 5上打印iPhone吗? – sumon

1

的UIDevice心不是有用使用

#include <sys/types.h> 
#include <sys/sysctl.h> 

- (NSString *)deviceModel 
{ 
    NSString *deviceModel = nil; 
    char buffer[32]; 
    size_t length = sizeof(buffer); 
    if (sysctlbyname("hw.machine", &buffer, &length, NULL, 0) == 0) { 
     deviceModel = [[NSString alloc] initWithCString:buffer encoding:NSASCIIStringEncoding]; 
    } 
    return [deviceModel autorelease]; 
} 

我也是不知道的5恒但我知道他们是独一无二的:

if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; 
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; 
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; 
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; 
if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon iPhone 4"; 
if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; 
if ([platform isEqualToString:@"iPod1,1"])  return @"iPod Touch 1G"; 
if ([platform isEqualToString:@"iPod2,1"])  return @"iPod Touch 2G"; 
if ([platform isEqualToString:@"iPod3,1"])  return @"iPod Touch 3G"; 
if ([platform isEqualToString:@"iPod4,1"])  return @"iPod Touch 4G"; 
if ([platform isEqualToString:@"iPad1,1"])  return @"iPad"; 
if ([platform isEqualToString:@"iPad2,1"])  return @"iPad 2 (WiFi)"; 
if ([platform isEqualToString:@"iPad2,2"])  return @"iPad 2 (GSM)"; 
if ([platform isEqualToString:@"iPad2,3"])  return @"iPad 2 (CDMA)"; 
if ([platform isEqualToString:@"iPad2,4"])  return @"iPad 2"; 
if ([platform isEqualToString:@"iPad3,1"])  return @"iPad-3G (WiFi)"; 
if ([platform isEqualToString:@"iPad3,2"])  return @"iPad-3G (4G)"; 
if ([platform isEqualToString:@"iPad3,3"])  return @"iPad-3G (4G)"; 
if ([platform isEqualToString:@"i386"])   return @"Simulator"; 
if ([platform isEqualToString:@"x86_64"])  return @"Simulator"; 

电话5 GSM - iPhone5,1

iPhone 5的CDMA - iPhone5,2

的iPod 5 - iPod5,1

信息从IOS文件名中获取。请检查http://osxdaily.com/2012/09/19/ios-6-ipsw-direct-download-links/

+0

感谢Daij-Djan,我认为它会在以后的作品中帮助我。 – sumon

+0

http://stackoverflow.com/a/12561119/716216 –

0

如果您尝试区分iPhone4/4S & iPhone5,则应检查屏幕尺寸,而不是设备型号。

+0

这不是一个好的解决方案。如果您试图分辨iPhone 4S和iPhone 5之间的差异,这种方法可行,但使用屏幕尺寸/比例,您无法检测到iPad Mini与iPad 2。按照@ Daij-Djan的说明检测机器ID答案是要走的路。 –

相关问题