diff --git a/UIDevice+HardwareModel.h b/UIDevice+HardwareModel.h index 93a756d..ab9d011 100644 --- a/UIDevice+HardwareModel.h +++ b/UIDevice+HardwareModel.h @@ -49,8 +49,13 @@ typedef enum __UIHardwareModel UIHardwareModeliPhone5cGlobal = 29, UIHardwareModeliPhone5s = 30, - UIHardwareModeliPhone5sGlobal = 31 - + UIHardwareModeliPhone5sGlobal = 31, + + UIHardwareModeliPadAirWiFi = 32, + UIHardwareModeliPadAirCellular = 33, + + UIHardwareModeliPadMini2GWifi = 34, + UIHardwareModeliPadMini2GCelluar = 35, } UIHardwareModel; @interface UIDevice (HardwareModel) @@ -60,6 +65,11 @@ typedef enum __UIHardwareModel */ - (NSString *)hardwareName; +/** + * Returns hardware label of device instance + */ +- (NSString *)hardwareLabel; + /** * Returns hardware id of device instance */ diff --git a/UIDevice+HardwareModel.m b/UIDevice+HardwareModel.m index b613910..9e245a8 100644 --- a/UIDevice+HardwareModel.m +++ b/UIDevice+HardwareModel.m @@ -105,6 +105,18 @@ - (NSString *)hardwareName case UIHardwareModeliPodTouch5G: name = @"iPod 5G"; break; + case UIHardwareModeliPadAirWiFi: + name = @"iPad Air Wifi"; + break; + case UIHardwareModeliPadAirCellular: + name = @"iPad Air Cellular"; + break; + case UIHardwareModeliPadMini2GWifi: + name = @"iPad mini 2G Wifi"; + break; + case UIHardwareModeliPadMini2GCelluar: + name = @"iPad mini 2G Celluar"; + break; case UIHardwareModelSimulator: name = @"Simulator"; break; @@ -116,22 +128,33 @@ - (NSString *)hardwareName return name; } --(UIHardwareModel)hardwareModel +- (NSString *)hardwareLabel { - static UIHardwareModel _hardwareModel; - - if(!_hardwareModel) - { + static NSString *_label; + + if (!_label) { size_t size; char *model; - + sysctlbyname("hw.machine", NULL, &size, NULL, 0); model = malloc(size); sysctlbyname("hw.machine", model, &size, NULL, 0); - - NSString *hwString = [NSString stringWithCString: model encoding: NSUTF8StringEncoding]; + + _label = [NSString stringWithCString: model encoding: NSUTF8StringEncoding]; free(model); - + } + + return _label; +} + +-(UIHardwareModel)hardwareModel +{ + static UIHardwareModel _hardwareModel; + + if(!_hardwareModel) + { + NSString *hwString = [self hardwareLabel]; + if([hwString isEqualToString: @"i386"] || [hwString isEqualToString:@"x86_64"]) _hardwareModel = UIHardwareModelSimulator; @@ -227,8 +250,20 @@ -(UIHardwareModel)hardwareModel if([hwString isEqualToString: @"iPad3,6"]) _hardwareModel = UIHardwareModeliPad4CDMA; + + if([hwString isEqualToString: @"iPad4,1"]) + _hardwareModel = UIHardwareModeliPadAirWiFi; + + if([hwString isEqualToString: @"iPad4,2"]) + _hardwareModel = UIHardwareModeliPadAirCellular; + + if([hwString isEqualToString: @"iPad4,4"]) + _hardwareModel = UIHardwareModeliPadMini2GWifi; + + if([hwString isEqualToString: @"iPad4,5"]) + _hardwareModel = UIHardwareModeliPadMini2GCelluar; } - + return _hardwareModel; }