2013-11-10 117 views
5

我面临的一个问题是,我需要找出用于分析目的的设备类型。检测设备是否为iPhone 5s

所以我需要找出一种方法来检查设备是否是iPhone 5s!

任何想法。 谢谢

+1

[确定设备(iPhone,iPod Touch)与iPhone SDK]的可能重复(http://stackoverflow.com/questions/448162/determine-device-iphone-ipod-touch-with-iphone-sdk) –

+0

这个答案http://stackoverflow.com/a/3950748/1187415重复的问题似乎包含最新的设备列表。 –

+0

我正在寻找处理器相关的答案,如'CPU_TYPE_ARM64',类似于这里的答案http://stackoverflow.com/a/19859698/979169 –

回答

21

通过使用GBDeviceInfo

它添加到您的POD文件并运行吊舱安装

pod GBDeviceInfo 

以确定它的iPhone 5S:

if (deviceInfo.model == GBDeviceModeliPhone5s) { 
    NSLog(@"It's a 5s"); //It's an iPhone 5s 
} 

通过代码:

#import <sys/utsname.h> 
/* 
    @"i386"  on the simulator 
    @"iPod1,1" on iPod Touch 
    @"iPod2,1" on iPod Touch Second Generation 
    @"iPod3,1" on iPod Touch Third Generation 
    @"iPod4,1" on iPod Touch Fourth Generation 
    @"iPod5,1" on iPod Touch Fifth Generation 
    @"iPhone1,1" on iPhone 
    @"iPhone1,2" on iPhone 3G 
    @"iPhone2,1" on iPhone 3GS 
    @"iPad1,1" on iPad 
    @"iPad2,1" on iPad 2 
    @"iPad3,1" on 3rd Generation iPad 
    @"iPad3,2": on iPad 3(GSM+CDMA) 
    @"iPad3,3": on iPad 3(GSM) 
    @"iPad3,4": on iPad 4(WiFi) 
    @"iPad3,5": on iPad 4(GSM) 
    @"iPad3,6": on iPad 4(GSM+CDMA) 
    @"iPhone3,1" on iPhone 4 
    @"iPhone4,1" on iPhone 4S 
    @"iPhone5,1" on iPhone 5 
    @"iPad3,4" on 4th Generation iPad 
    @"iPad2,5" on iPad Mini 
    @"iPhone5,1" on iPhone 5(GSM) 
    @"iPhone5,2" on iPhone 5(GSM+CDMA) 
    @"iPhone5,3 on iPhone 5c(GSM) 
    @"iPhone5,4" on iPhone 5c(GSM+CDMA) 
    @"iPhone6,1" on iPhone 5s(GSM) 
    @"iPhone6,2" on iPhone 5s(GSM+CDMA) 
    @"iPhone7,1" on iPhone 6 Plus 
    @"iPhone7,2" on iPhone 6 
*/ 

- (NSString*) machineName{ 
    struct utsname systemInfo; 
    uname(&systemInfo); 
    NSString *result = [NSString stringWithCString:systemInfo.machine 
              encoding:NSUTF8StringEncoding]; 
    return result; 
} 
+0

谢谢:),它的工作原理 –

+0

谢谢:)完美! –