//.h #import <Foundation/Foundation.h> #import <sys/utsname.h> @interface DeviceInfo : NSObject +(NSString*)deviceString; +(BOOL)isRetina; @end //.m #import "DeviceInfo.h" @implementation DeviceInfo +(NSString*)deviceString { struct utsname systemInfo; uname(&systemInfo); NSString *deviceString = [NSStringstringWithCString:systemInfo.machineencoding:NSUTF8StringEncoding]; if ([deviceString isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; if ([deviceString isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; if ([deviceString isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; if ([deviceString isEqualToString:@"iPhone3,2"]) return@"Verizon iPhone 4"; if ([deviceString isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G"; if ([deviceString isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G"; if ([deviceString isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G"; if ([deviceString isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G"; if ([deviceString isEqualToString:@"iPad1,1"]) return @"iPad"; if ([deviceString isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)"; if ([deviceString isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)"; if ([deviceString isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)"; if ([deviceString isEqualToString:@"i386"]) return @"Simulator"; if ([deviceString isEqualToString:@"x86_64"]) return @"Simulator"; return deviceString; } +(BOOL)isRetina { struct utsname systemInfo; uname(&systemInfo); NSString *deviceString = [NSStringstringWithCString:systemInfo.machineencoding:NSUTF8StringEncoding]; if ([deviceString isEqualToString:@"iPhone1,1"]) return NO; if ([deviceString isEqualToString:@"iPhone1,2"]) return NO; if ([deviceString isEqualToString:@"iPhone2,1"]) return NO; if ([deviceString isEqualToString:@"iPhone3,1"]) return YES; if ([deviceString isEqualToString:@"iPhone3,2"]) return YES; if ([deviceString isEqualToString:@"iPod1,1"]) return NO; if ([deviceString isEqualToString:@"iPod2,1"]) return NO; if ([deviceString isEqualToString:@"iPod3,1"]) return NO; if ([deviceString isEqualToString:@"iPod4,1"]) return YES; if ([deviceString isEqualToString:@"iPad1,1"]) return YES; if ([deviceString isEqualToString:@"iPad2,1"]) return YES; if ([deviceString isEqualToString:@"iPad2,2"]) return YES; if ([deviceString isEqualToString:@"iPad2,3"]) return YES; if ([deviceString isEqualToString:@"i386"]) return NO; if ([deviceString isEqualToString:@"x86_64"]) return NO; returnNO; // return deviceString; } @end + (NSString*)deviceString { // 需要#import "sys/utsname.h" struct utsname systemInfo; uname(&systemInfo); NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; if ([deviceString isEqualToString:@"iPhone1,1"]) return @"iPhone 1G"; if ([deviceString isEqualToString:@"iPhone1,2"]) return @"iPhone 3G"; if ([deviceString isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS"; if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4"; if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S"; if ([deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5"; if ([deviceString isEqualToString:@"iPhone3,2"]) return @"Verizon iPhone 4"; if ([deviceString isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G"; if ([deviceString isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G"; if ([deviceString isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G"; if ([deviceString isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G"; if ([deviceString isEqualToString:@"iPad1,1"]) return @"iPad"; if ([deviceString isEqualToString:@"iPad2,1"]) return @"iPad 2 (WiFi)"; if ([deviceString isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)"; if ([deviceString isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)"; if ([deviceString isEqualToString:@"i386"]) return @"Simulator"; if ([deviceString isEqualToString:@"x86_64"]) return @"Simulator"; NSLog(@"NOTE: Unknown device type: %@", deviceString); return deviceString; }