From ee1894847a198af7c8191a83f2402d5cf99c8c6e Mon Sep 17 00:00:00 2001 From: nuoerlz Date: Mon, 2 Jun 2014 17:32:51 +0800 Subject: [PATCH 1/3] Add iPad mini 2G & iPad Air --- UIDevice+HardwareModel.h | 9 +++++++-- UIDevice+HardwareModel.m | 26 +++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/UIDevice+HardwareModel.h b/UIDevice+HardwareModel.h index 93a756d..32190af 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) diff --git a/UIDevice+HardwareModel.m b/UIDevice+HardwareModel.m index b613910..b502de7 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; @@ -227,8 +239,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; } From b11a9ada313a90ac9a1bc148318e784896b1d8a4 Mon Sep 17 00:00:00 2001 From: nuoerlz Date: Mon, 2 Jun 2014 17:47:54 +0800 Subject: [PATCH 2/3] Add method for return model's label --- UIDevice+HardwareModel.h | 5 +++++ UIDevice+HardwareModel.m | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/UIDevice+HardwareModel.h b/UIDevice+HardwareModel.h index 32190af..ab9d011 100644 --- a/UIDevice+HardwareModel.h +++ b/UIDevice+HardwareModel.h @@ -65,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 b502de7..a88a66d 100644 --- a/UIDevice+HardwareModel.m +++ b/UIDevice+HardwareModel.m @@ -128,6 +128,25 @@ - (NSString *)hardwareName return name; } +- (NSString *)hardwareLabel +{ + 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); + + _label = [NSString stringWithCString: model encoding: NSUTF8StringEncoding]; + free(model); + } + + return _label; +} + -(UIHardwareModel)hardwareModel { static UIHardwareModel _hardwareModel; From e727b58534ad91534364637be7731a5f3dbdffaf Mon Sep 17 00:00:00 2001 From: nuoerlz Date: Mon, 2 Jun 2014 17:54:47 +0800 Subject: [PATCH 3/3] Fix, sytax error --- UIDevice+HardwareModel.m | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/UIDevice+HardwareModel.m b/UIDevice+HardwareModel.m index a88a66d..9e245a8 100644 --- a/UIDevice+HardwareModel.m +++ b/UIDevice+HardwareModel.m @@ -130,7 +130,7 @@ - (NSString *)hardwareName - (NSString *)hardwareLabel { - static NSString _label; + static NSString *_label; if (!_label) { size_t size; @@ -153,16 +153,8 @@ -(UIHardwareModel)hardwareModel if(!_hardwareModel) { - 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]; - free(model); - + NSString *hwString = [self hardwareLabel]; + if([hwString isEqualToString: @"i386"] || [hwString isEqualToString:@"x86_64"]) _hardwareModel = UIHardwareModelSimulator;