#include <sys/types.h>
#include <sys/sysctl.h>
//可通过苹果review
- (
NSString
*)getDeviceVersion
{
size_t size;
sysctlbyname(
"hw.machine"
,
NULL
, &size,
NULL
, 0);
char
*machine = (
char
*)malloc(size);
sysctlbyname(
"hw.machine"
, machine, &size,
NULL
, 0);
NSString
*platform = [
NSString
stringWithCString:machine encoding:
NSUTF8StringEncoding
];
//NSString *platform = [NSStringstringWithUTF8String:machine];二者等效
free(machine);
return
platform;
}
- (NSString *) platformString{
NSString *platform = [selfgetDeviceVersion];
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 ([platformisEqualToString:@"iPhone3,2"]) return @"Verizon iPhone 4";
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:@"i386"]) return@"Simulator";
return platform;
}
//@"iPad1,1"
//@"iPad2,1"
//@"i386"
逗号后面数字解释:(i386是指模拟器)
1-WiFi版
2-GSM/WCDMA 3G版
3-CDMA版
AppleTV(2G) (AppleTV2,1)
iPad (iPad1,1)
iPad2,1 (iPad2,1)Wifi版
iPad2,2 (iPad2,2)GSM3G版
iPad2,3 (iPad2,3)CDMA3G版
iPhone (iPhone1,1)
iPhone3G (iPhone1,2)
iPhone3GS (iPhone2,1)
iPhone4 (iPhone3,1)
iPhone4(vz) (iPhone3,3)iPhone4 CDMA版
iPhone4S (iPhone4,1)
iPodTouch(1G) (iPod1,1)
iPodTouch(2G) (iPod2,1)
iPodTouch(3G) (iPod3,1)
iPodTouch(4G) (iPod4,1)