UIDevice-Utils/Pod/Classes/UIDevice-Hardware.m
2018-04-19 12:16:06 +02:00

390 lines
22 KiB
Objective-C
Executable File

#include <sys/sysctl.h>
#import "UIDevice-Hardware.h"
@interface UIDevice (Hardward)
- (NSString *)modelNameForModelIdentifier:(NSString *)modelIdentifier;
@end
@implementation UIDevice (Hardware)
- (NSString *)getSysInfoByName:(char *)typeSpecifier
{
size_t size;
sysctlbyname(typeSpecifier, NULL, &size, NULL, 0);
char *answer = malloc(size);
sysctlbyname(typeSpecifier, answer, &size, NULL, 0);
NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding];
free(answer);
return results;
}
- (NSString *)modelIdentifier
{
return [self getSysInfoByName:"hw.machine"];
}
- (UIDeviceFamily) deviceFamily
{
NSString *modelIdentifier = [self deviceGenerationModelString];
if ([modelIdentifier hasPrefix:@"iPhone"]) return UIDeviceFamilyiPhone;
if ([modelIdentifier hasPrefix:@"iPod"]) return UIDeviceFamilyiPod;
if ([modelIdentifier hasPrefix:@"iPad"]) return UIDeviceFamilyiPad;
if ([modelIdentifier hasPrefix:@"AppleTV"]) return UIDeviceFamilyAppleTV;
return UIDeviceFamilyUnknown;
}
- (UIDeviceGenerationModel) deviceGenerationModel
{
NSString *modelIdentifier = [self modelIdentifier];
// iPhone https://www.theiphonewiki.com/wiki/List_of_iPhones
if ([modelIdentifier isEqualToString:@"iPhone1,1"]) return UIDeviceGenerationModeliPhone1G;
if ([modelIdentifier isEqualToString:@"iPhone1,2"]) return UIDeviceGenerationModeliPhone3G;
if ([modelIdentifier isEqualToString:@"iPhone2,1"]) return UIDeviceGenerationModeliPhone3GS;
if ([modelIdentifier isEqualToString:@"iPhone3,1"]) return UIDeviceGenerationModeliPhone4;
if ([modelIdentifier isEqualToString:@"iPhone3,2"]) return UIDeviceGenerationModeliPhone4;
if ([modelIdentifier isEqualToString:@"iPhone3,3"]) return UIDeviceGenerationModeliPhone4;
if ([modelIdentifier isEqualToString:@"iPhone4,1"]) return UIDeviceGenerationModeliPhone4S;
if ([modelIdentifier isEqualToString:@"iPhone5,1"]) return UIDeviceGenerationModeliPhone5;
if ([modelIdentifier isEqualToString:@"iPhone5,2"]) return UIDeviceGenerationModeliPhone5;
if ([modelIdentifier isEqualToString:@"iPhone5,3"]) return UIDeviceGenerationModeliPhone5C;
if ([modelIdentifier isEqualToString:@"iPhone5,4"]) return UIDeviceGenerationModeliPhone5C;
if ([modelIdentifier isEqualToString:@"iPhone6,1"]) return UIDeviceGenerationModeliPhone5S;
if ([modelIdentifier isEqualToString:@"iPhone6,2"]) return UIDeviceGenerationModeliPhone5S;
if ([modelIdentifier isEqualToString:@"iPhone7,1"]) return UIDeviceGenerationModeliPhone6Plus;
if ([modelIdentifier isEqualToString:@"iPhone7,2"]) return UIDeviceGenerationModeliPhone6;
if ([modelIdentifier isEqualToString:@"iPhone8,1"]) return UIDeviceGenerationModeliPhone6S;
if ([modelIdentifier isEqualToString:@"iPhone8,2"]) return UIDeviceGenerationModeliPhone6SPlus;
if ([modelIdentifier isEqualToString:@"iPhone8,4"]) return UIDeviceGenerationModeliPhoneSE;
if ([modelIdentifier isEqualToString:@"iPhone9,1"]) return UIDeviceGenerationModeliPhone7;
if ([modelIdentifier isEqualToString:@"iPhone9,2"]) return UIDeviceGenerationModeliPhone7Plus;
if ([modelIdentifier isEqualToString:@"iPhone9,3"]) return UIDeviceGenerationModeliPhone7;
if ([modelIdentifier isEqualToString:@"iPhone9,4"]) return UIDeviceGenerationModeliPhone7Plus;
if ([modelIdentifier isEqualToString:@"iPhone10,1"]) return UIDeviceGenerationModeliPhone8;
if ([modelIdentifier isEqualToString:@"iPhone10,2"]) return UIDeviceGenerationModeliPhone8Plus;
if ([modelIdentifier isEqualToString:@"iPhone10,3"]) return UIDeviceGenerationModeliPhoneX;
if ([modelIdentifier isEqualToString:@"iPhone10,4"]) return UIDeviceGenerationModeliPhone8;
if ([modelIdentifier isEqualToString:@"iPhone10,5"]) return UIDeviceGenerationModeliPhone8Plus;
if ([modelIdentifier isEqualToString:@"iPhone10,6"]) return UIDeviceGenerationModeliPhoneX;
// iPad http://theiphonewiki.com/wiki/IPad
if ([modelIdentifier isEqualToString:@"iPad1,1"]) return UIDeviceGenerationModeliPad1;
if ([modelIdentifier isEqualToString:@"iPad2,1"]) return UIDeviceGenerationModeliPad2;
if ([modelIdentifier isEqualToString:@"iPad2,2"]) return UIDeviceGenerationModeliPad2;
if ([modelIdentifier isEqualToString:@"iPad2,3"]) return UIDeviceGenerationModeliPad2;
if ([modelIdentifier isEqualToString:@"iPad2,4"]) return UIDeviceGenerationModeliPad2;
if ([modelIdentifier isEqualToString:@"iPad3,1"]) return UIDeviceGenerationModeliPad3;
if ([modelIdentifier isEqualToString:@"iPad3,2"]) return UIDeviceGenerationModeliPad3;
if ([modelIdentifier isEqualToString:@"iPad3,3"]) return UIDeviceGenerationModeliPad3;
if ([modelIdentifier isEqualToString:@"iPad3,4"]) return UIDeviceGenerationModeliPad4;
if ([modelIdentifier isEqualToString:@"iPad3,5"]) return UIDeviceGenerationModeliPad4;
if ([modelIdentifier isEqualToString:@"iPad3,6"]) return UIDeviceGenerationModeliPad4;
if ([modelIdentifier isEqualToString:@"iPad6,11"]) return UIDeviceGenerationModeliPad5;
if ([modelIdentifier isEqualToString:@"iPad6,12"]) return UIDeviceGenerationModeliPad5;
if ([modelIdentifier isEqualToString:@"iPad4,1"]) return UIDeviceGenerationModeliPadAir;
if ([modelIdentifier isEqualToString:@"iPad4,2"]) return UIDeviceGenerationModeliPadAir;
if ([modelIdentifier isEqualToString:@"iPad5,3"]) return UIDeviceGenerationModeliPadAir2;
if ([modelIdentifier isEqualToString:@"iPad5,4"]) return UIDeviceGenerationModeliPadAir2;
// iPad Mini http://theiphonewiki.com/wiki/IPad_mini
if ([modelIdentifier isEqualToString:@"iPad2,5"]) return UIDeviceGenerationModeliPadMini1;
if ([modelIdentifier isEqualToString:@"iPad2,6"]) return UIDeviceGenerationModeliPadMini1;
if ([modelIdentifier isEqualToString:@"iPad2,7"]) return UIDeviceGenerationModeliPadMini1;
if ([modelIdentifier isEqualToString:@"iPad4,4"]) return UIDeviceGenerationModeliPadMini2;
if ([modelIdentifier isEqualToString:@"iPad4,5"]) return UIDeviceGenerationModeliPadMini2;
if ([modelIdentifier isEqualToString:@"iPad4,6"]) return UIDeviceGenerationModeliPadMini2; // TD-LTE model see https://support.apple.com/en-us/HT201471#iPad-mini2
if ([modelIdentifier isEqualToString:@"iPad4,7"]) return UIDeviceGenerationModeliPadMini3;
if ([modelIdentifier isEqualToString:@"iPad4,8"]) return UIDeviceGenerationModeliPadMini3;
if ([modelIdentifier isEqualToString:@"iPad4,9"]) return UIDeviceGenerationModeliPadMini3;
if ([modelIdentifier isEqualToString:@"iPad5,1"]) return UIDeviceGenerationModeliPadMini4;
if ([modelIdentifier isEqualToString:@"iPad5,2"]) return UIDeviceGenerationModeliPadMini4;
// iPad Pro https://www.theiphonewiki.com/wiki/IPad_Pro
if ([modelIdentifier isEqualToString:@"iPad6,3"]) return UIDeviceGenerationModeliPadPro97; // http://pdadb.net/index.php?m=specs&id=9938&c=apple_ipad_pro_9.7-inch_a1673_wifi_32gb_apple_ipad_6,3
if ([modelIdentifier isEqualToString:@"iPad6,4"]) return UIDeviceGenerationModeliPadPro97; // http://pdadb.net/index.php?m=specs&id=9981&c=apple_ipad_pro_9.7-inch_a1675_td-lte_32gb_apple_ipad_6,4
if ([modelIdentifier isEqualToString:@"iPad6,7"]) return UIDeviceGenerationModeliPadPro12; // http://pdadb.net/index.php?m=specs&id=8960&c=apple_ipad_pro_wifi_a1584_128gb
if ([modelIdentifier isEqualToString:@"iPad6,8"]) return UIDeviceGenerationModeliPadPro12; // http://pdadb.net/index.php?m=specs&id=8965&c=apple_ipad_pro_td-lte_a1652_32gb_apple_ipad_6,8
if ([modelIdentifier isEqualToString:@"iPad7,1"]) return UIDeviceGenerationModeliPadPro12;
if ([modelIdentifier isEqualToString:@"iPad7,2"]) return UIDeviceGenerationModeliPadPro12;
if ([modelIdentifier isEqualToString:@"iPad7,3"]) return UIDeviceGenerationModeliPadPro105;
if ([modelIdentifier isEqualToString:@"iPad7,4"]) return UIDeviceGenerationModeliPadPro105;
// iPod http://theiphonewiki.com/wiki/IPod
if ([modelIdentifier isEqualToString:@"iPod1,1"]) return UIDeviceGenerationModeliPod1;
if ([modelIdentifier isEqualToString:@"iPod2,1"]) return UIDeviceGenerationModeliPod2;
if ([modelIdentifier isEqualToString:@"iPod3,1"]) return UIDeviceGenerationModeliPod3;
if ([modelIdentifier isEqualToString:@"iPod4,1"]) return UIDeviceGenerationModeliPod4;
if ([modelIdentifier isEqualToString:@"iPod5,1"]) return UIDeviceGenerationModeliPod5;
if ([modelIdentifier isEqualToString:@"iPod7,1"]) return UIDeviceGenerationModeliPod6; // as 6,1 was never released 7,1 is actually 6th generation
// Apple TV https://www.theiphonewiki.com/wiki/Apple_TV
if ([modelIdentifier isEqualToString:@"AppleTV1,1"]) return UIDeviceGenerationModelAppleTV1;
if ([modelIdentifier isEqualToString:@"AppleTV2,1"]) return UIDeviceGenerationModelAppleTV2;
if ([modelIdentifier isEqualToString:@"AppleTV3,1"]) return UIDeviceGenerationModelAppleTV3;
if ([modelIdentifier isEqualToString:@"AppleTV3,2"]) return UIDeviceGenerationModelAppleTV3_v2; // small, incremental update over 3,1
if ([modelIdentifier isEqualToString:@"AppleTV5,3"]) return UIDeviceGenerationModelAppleTV4;
if ([modelIdentifier hasSuffix:@"86"] || [modelIdentifier isEqual:@"x86_64"])
{
BOOL iPhoneScreen = ([[UIScreen mainScreen] bounds].size.width < 768.0);
BOOL iPadScreen = !iPhoneScreen;
if (iPadScreen) {
return UIDeviceGenerationModeliPadSimulator;
}
else {
return UIDeviceGenerationModeliPhoneSimulator;
}
}
return UIDeviceGenerationModelUnknown;
}
- (NSString*) deviceGenerationModelString
{
NSString *modelIdentifier = [self modelIdentifier];
if ([modelIdentifier isEqualToString:@"iPhone1,1"]) return @"iPhone 1G";
if ([modelIdentifier isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
if ([modelIdentifier isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";
if ([modelIdentifier isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (GSM)";
if ([modelIdentifier isEqualToString:@"iPhone3,2"]) return @"iPhone 4 (GSM Rev A)";
if ([modelIdentifier isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (CDMA)";
if ([modelIdentifier isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([modelIdentifier isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (GSM)";
if ([modelIdentifier isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (Global)";
if ([modelIdentifier isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (GSM)";
if ([modelIdentifier isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (Global)";
if ([modelIdentifier isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (GSM)";
if ([modelIdentifier isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (Global)";
if ([modelIdentifier isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([modelIdentifier isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([modelIdentifier isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([modelIdentifier isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([modelIdentifier isEqualToString:@"iPhone8,4"]) return @"iPhone SE";
if ([modelIdentifier isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
if ([modelIdentifier isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";
if ([modelIdentifier isEqualToString:@"iPhone9,3"]) return @"iPhone 7";
if ([modelIdentifier isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus";
if ([modelIdentifier isEqualToString:@"iPhone10,1"]) return @"iPhone 8"; // US (Verizon), China, Japan
if ([modelIdentifier isEqualToString:@"iPhone10,2"]) return @"iPhone 8 Plus"; // US (Verizon), China, Japan
if ([modelIdentifier isEqualToString:@"iPhone10,3"]) return @"iPhone X"; // US (Verizon), China, Japan
if ([modelIdentifier isEqualToString:@"iPhone10,4"]) return @"iPhone 8"; // AT&T, Global
if ([modelIdentifier isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus"; // AT&T, Global
if ([modelIdentifier isEqualToString:@"iPhone10,6"]) return @"iPhone X"; // AT&T, Global
// iPad http://theiphonewiki.com/wiki/IPad
if ([modelIdentifier isEqualToString:@"iPad1,1"]) return @"iPad 1G";
if ([modelIdentifier isEqualToString:@"iPad2,1"]) return @"iPad 2 (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad2,2"]) return @"iPad 2 (GSM)";
if ([modelIdentifier isEqualToString:@"iPad2,3"]) return @"iPad 2 (CDMA)";
if ([modelIdentifier isEqualToString:@"iPad2,4"]) return @"iPad 2 (Rev A)";
if ([modelIdentifier isEqualToString:@"iPad3,1"]) return @"iPad 3 (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad3,2"]) return @"iPad 3 (GSM)";
if ([modelIdentifier isEqualToString:@"iPad3,3"]) return @"iPad 3 (Global)";
if ([modelIdentifier isEqualToString:@"iPad3,4"]) return @"iPad 4 (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad3,5"]) return @"iPad 4 (GSM)";
if ([modelIdentifier isEqualToString:@"iPad3,6"]) return @"iPad 4 (Global)";
if ([modelIdentifier isEqualToString:@"iPad6,11"]) return @"iPad (5th gen) (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad6,12"]) return @"iPad (5th gen) (Cellular)";
if ([modelIdentifier isEqualToString:@"iPad4,1"]) return @"iPad Air (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad4,2"]) return @"iPad Air (Cellular)";
if ([modelIdentifier isEqualToString:@"iPad5,3"]) return @"iPad Air 2 (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad5,4"]) return @"iPad Air 2 (Cellular)";
// iPad Mini http://theiphonewiki.com/wiki/IPad_mini
if ([modelIdentifier isEqualToString:@"iPad2,5"]) return @"iPad mini 1G (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad2,6"]) return @"iPad mini 1G (GSM)";
if ([modelIdentifier isEqualToString:@"iPad2,7"]) return @"iPad mini 1G (Global)";
if ([modelIdentifier isEqualToString:@"iPad4,4"]) return @"iPad mini 2G (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad4,5"]) return @"iPad mini 2G (Cellular)";
if ([modelIdentifier isEqualToString:@"iPad4,6"]) return @"iPad mini 2G (Cellular)"; // TD-LTE model see https://support.apple.com/en-us/HT201471#iPad-mini2
if ([modelIdentifier isEqualToString:@"iPad4,7"]) return @"iPad mini 3G (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad4,8"]) return @"iPad mini 3G (Cellular)";
if ([modelIdentifier isEqualToString:@"iPad4,9"]) return @"iPad mini 3G (Cellular)";
if ([modelIdentifier isEqualToString:@"iPad5,1"]) return @"iPad mini 4G (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad5,2"]) return @"iPad mini 4G (Cellular)";
// iPad Pro https://www.theiphonewiki.com/wiki/IPad_Pro
if ([modelIdentifier isEqualToString:@"iPad6,3"]) return @"iPad Pro (9.7 inch) 1G (Wi-Fi)"; // http://pdadb.net/index.php?m=specs&id=9938&c=apple_ipad_pro_9.7-inch_a1673_wifi_32gb_apple_ipad_6,3
if ([modelIdentifier isEqualToString:@"iPad6,4"]) return @"iPad Pro (9.7 inch) 1G (Cellular)"; // http://pdadb.net/index.php?m=specs&id=9981&c=apple_ipad_pro_9.7-inch_a1675_td-lte_32gb_apple_ipad_6,4
if ([modelIdentifier isEqualToString:@"iPad6,7"]) return @"iPad Pro (12.9 inch) 1G (Wi-Fi)"; // http://pdadb.net/index.php?m=specs&id=8960&c=apple_ipad_pro_wifi_a1584_128gb
if ([modelIdentifier isEqualToString:@"iPad6,8"]) return @"iPad Pro (12.9 inch) 1G (Cellular)"; // http://pdadb.net/index.php?m=specs&id=8965&c=apple_ipad_pro_td-lte_a1652_32gb_apple_ipad_6,8
if ([modelIdentifier isEqualToString:@"iPad7,1"]) return @"iPad Pro (12.9 inch) 2G (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad7,2"]) return @"iPad Pro (12.9 inch) 2G (Cellular)";
if ([modelIdentifier isEqualToString:@"iPad7,3"]) return @"iPad Pro (10.5 inch) 1G (Wi-Fi)";
if ([modelIdentifier isEqualToString:@"iPad7,4"]) return @"iPad Pro (10.5 inch) 1G (Cellular)";
// iPod http://theiphonewiki.com/wiki/IPod
if ([modelIdentifier isEqualToString:@"iPod1,1"]) return @"iPod touch 1G";
if ([modelIdentifier isEqualToString:@"iPod2,1"]) return @"iPod touch 2G";
if ([modelIdentifier isEqualToString:@"iPod3,1"]) return @"iPod touch 3G";
if ([modelIdentifier isEqualToString:@"iPod4,1"]) return @"iPod touch 4G";
if ([modelIdentifier isEqualToString:@"iPod5,1"]) return @"iPod touch 5G";
if ([modelIdentifier isEqualToString:@"iPod7,1"]) return @"iPod touch 6G"; // as 6,1 was never released 7,1 is actually 6th generation
// Apple TV https://www.theiphonewiki.com/wiki/Apple_TV
if ([modelIdentifier isEqualToString:@"AppleTV1,1"]) return @"Apple TV 1G";
if ([modelIdentifier isEqualToString:@"AppleTV2,1"]) return @"Apple TV 2G";
if ([modelIdentifier isEqualToString:@"AppleTV3,1"]) return @"Apple TV 3G";
if ([modelIdentifier isEqualToString:@"AppleTV3,2"]) return @"Apple TV 3G"; // small, incremental update over 3,1
if ([modelIdentifier isEqualToString:@"AppleTV5,3"]) return @"Apple TV 4G"; // as 4,1 was never released, 5,1 is actually 4th generation
// Simulator
if ([modelIdentifier hasSuffix:@"86"] || [modelIdentifier isEqual:@"x86_64"])
{
BOOL smallerScreen = ([[UIScreen mainScreen] bounds].size.width < 768.0);
return (smallerScreen ? @"iPhone Simulator" : @"iPad Simulator");
}
return modelIdentifier;
}
- (UIDeviceModelInches) deviceInches {
switch ([self deviceGenerationModel]) {
case UIDeviceGenerationModeliPhone3G:
case UIDeviceGenerationModeliPhone3GS:
case UIDeviceGenerationModeliPhone4:
case UIDeviceGenerationModeliPhone4S:{
return UIDeviceModelInches35;
}
break;
case UIDeviceGenerationModeliPhone5:
case UIDeviceGenerationModeliPhone5C:
case UIDeviceGenerationModeliPhone5S:
case UIDeviceGenerationModeliPhoneSE:{
return UIDeviceModelInches4;
}
break;
case UIDeviceGenerationModeliPhone6:
case UIDeviceGenerationModeliPhone6S:
case UIDeviceGenerationModeliPhone7:
case UIDeviceGenerationModeliPhone8:{
return UIDeviceModelInches47;
}
break;
case UIDeviceGenerationModeliPhone6Plus:
case UIDeviceGenerationModeliPhone6SPlus:
case UIDeviceGenerationModeliPhone7Plus:
case UIDeviceGenerationModeliPhone8Plus:{
return UIDeviceModelInches55;
}
break;
case UIDeviceGenerationModeliPhoneX:{
return UIDeviceModelInches58;
}
break;
case UIDeviceGenerationModeliPad1:
case UIDeviceGenerationModeliPad2:
case UIDeviceGenerationModeliPad3:
case UIDeviceGenerationModeliPad4:
case UIDeviceGenerationModeliPad5:
case UIDeviceGenerationModeliPadAir:
case UIDeviceGenerationModeliPadAir2:
case UIDeviceGenerationModeliPadPro97:{
return UIDeviceModelInches97;
}
break;
case UIDeviceGenerationModeliPadMini1:
case UIDeviceGenerationModeliPadMini2:
case UIDeviceGenerationModeliPadMini3:
case UIDeviceGenerationModeliPadMini4:{
return UIDeviceModelInches79;
}
break;
case UIDeviceGenerationModeliPadPro105:{
return UIDeviceModelInches105;
}
break;
case UIDeviceGenerationModeliPadPro12:{
return UIDeviceModelInches129;
}
break;
case UIDeviceGenerationModeliPadSimulator:
case UIDeviceGenerationModeliPhoneSimulator:{
CGRect screenRect = [[UIScreen mainScreen] bounds];
NSInteger screenHeight = ((NSInteger)screenRect.size.height > (NSInteger)screenRect.size.width) ? (NSInteger)screenRect.size.height : (NSInteger)screenRect.size.width;
switch (screenHeight) {
case 480:{
return UIDeviceSimulatorModelInches35;
}
break;
case 568:{
return UIDeviceSimulatorModelInches4;
break;
}
case 667:{
return UIDeviceSimulatorModelInches47;
break;
}
case 736:{
return UIDeviceSimulatorModelInches55;
break;
}
case 812:{
return UIDeviceSimulatorModelInches58;
break;
}
break;
case 1024:{
return UIDeviceModelInches97;
break;
}
case 1366:{
return UIDeviceSimulatorModelInches129;
break;
}
default:{
return UIDeviceModelInchesUnKnown;
break;
}
}
break;
}
default: {
return UIDeviceModelInchesUnKnown;
break;
}
}
return UIDeviceModelInchesUnKnown;
}
- (CGFloat) deviceOsVersion {
return [[self systemVersion] floatValue];
}
- (CGFloat) deviceHeight {
CGRect viewSize = [[UIScreen mainScreen] bounds];
return viewSize.size.height;
}
- (CGFloat) deviceWidth {
CGRect viewSize = [[UIScreen mainScreen] bounds];
return viewSize.size.width;
}
@end