美文网首页
iOS 设备类型判断

iOS 设备类型判断

作者: iOS代码搬运工 | 来源:发表于2020-09-17 11:55 被阅读0次
#import "UIDevice+BSTDevice.h"
#import <sys/utsname.h> // 头文件导入后 直接调用
struct utsname systemInfo;

@implementation UIDevice (BSTDevice)
+ (NSString *)BST_DeviceType {
    
    uname(&systemInfo);
    NSString *deviceType = [NSString stringWithCString:systemInfo.machine encoding:NSASCIIStringEncoding];
    /// iPhone
    if([deviceType  isEqualToString:@"iPhone1,1"])  return @"iPhone 2G";

    if([deviceType  isEqualToString:@"iPhone1,2"])  return @"iPhone 3G";

    if([deviceType  isEqualToString:@"iPhone2,1"])  return @"iPhone 3GS";

    if([deviceType  isEqualToString:@"iPhone3,1"])  return @"iPhone 4";

    if([deviceType  isEqualToString:@"iPhone3,2"])  return @"iPhone 4";

    if([deviceType  isEqualToString:@"iPhone3,3"])  return @"iPhone 4";

    if([deviceType  isEqualToString:@"iPhone4,1"])  return @"iPhone 4S";

    if([deviceType  isEqualToString:@"iPhone5,1"])  return @"iPhone 5";

    if([deviceType  isEqualToString:@"iPhone5,2"])  return @"iPhone 5";

    if([deviceType  isEqualToString:@"iPhone5,3"])  return @"iPhone 5c";

    if([deviceType  isEqualToString:@"iPhone5,4"])  return @"iPhone 5c";

    if([deviceType  isEqualToString:@"iPhone6,1"])  return @"iPhone 5s";

    if([deviceType  isEqualToString:@"iPhone6,2"])  return @"iPhone 5s";

    if([deviceType  isEqualToString:@"iPhone7,1"])  return @"iPhone 6 Plus";

    if([deviceType  isEqualToString:@"iPhone7,2"])  return @"iPhone 6";

    if([deviceType  isEqualToString:@"iPhone8,1"])  return @"iPhone 6s";

    if([deviceType  isEqualToString:@"iPhone8,2"])  return @"iPhone 6s Plus";

    if([deviceType  isEqualToString:@"iPhone8,4"])  return @"iPhone SE";

    if([deviceType  isEqualToString:@"iPhone9,1"])  return @"iPhone 7";
    
    if([deviceType  isEqualToString:@"iPhone9,3"])  return @"iPhone 7";

    if([deviceType  isEqualToString:@"iPhone9,2"])  return @"iPhone 7 Plus";
    
    if([deviceType  isEqualToString:@"iPhone9,4"])  return @"iPhone 7 Plus";

    if([deviceType  isEqualToString:@"iPhone10,1"]) return @"iPhone 8";

    if([deviceType  isEqualToString:@"iPhone10,4"]) return @"iPhone 8";

    if([deviceType  isEqualToString:@"iPhone10,2"]) return @"iPhone 8 Plus";

    if([deviceType  isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";

    if([deviceType  isEqualToString:@"iPhone10,3"]) return @"iPhone X";

    if([deviceType  isEqualToString:@"iPhone10,6"]) return @"iPhone X";

    if([deviceType  isEqualToString:@"iPhone11,2"]) return @"iPhone XS";

    if([deviceType  isEqualToString:@"iPhone11,6"]) return @"iPhone XS Max";

    if([deviceType  isEqualToString:@"iPhone11,8"]) return @"iPhone XR";
    
    if([deviceType  isEqualToString:@"iPhone12,1"]) return @"iPhone 11";
    
    if([deviceType  isEqualToString:@"iPhone12,3"]) return @"iPhone 11 Pro";
    
    if([deviceType  isEqualToString:@"iPhone12,5"]) return @"iPhone 11 Pro Max";
    
    if([deviceType  isEqualToString:@"iPhone12,8"]) return @"iPhone SE 2nd";

    /// iPad
    if([deviceType  isEqualToString:@"iPad1,1"])    return @"iPad";
    
    if([deviceType  isEqualToString:@"iPad2,1"])    return @"iPad 2";
    
    if([deviceType  isEqualToString:@"iPad2,2"])    return @"iPad 2";
    
    if([deviceType  isEqualToString:@"iPad2,3"])    return @"iPad 2";
    
    if([deviceType  isEqualToString:@"iPad2,4"])    return @"iPad 2";
    
    if([deviceType  isEqualToString:@"iPad3,1"])    return @"iPad 3rd";
    
    if([deviceType  isEqualToString:@"iPad3,2"])    return @"iPad 3rd";
    
    if([deviceType  isEqualToString:@"iPad3,3"])    return @"iPad 3rd";
    
    if([deviceType  isEqualToString:@"iPad3,4"])    return @"iPad 3rd";
    
    if([deviceType  isEqualToString:@"iPad3,6"])    return @"iPad 4th";
    
    if([deviceType  isEqualToString:@"iPad3,5"])    return @"iPad 4th";
    
    if([deviceType  isEqualToString:@"iPad4,1"])    return @"iPad Air";
    
    if([deviceType  isEqualToString:@"iPad4,2"])    return @"iPad Air";
    
    if([deviceType  isEqualToString:@"iPad4,3"])    return @"iPad Air";
    
    if([deviceType  isEqualToString:@"iPad5,3"])    return @"iPad Air 2";
    
    if([deviceType  isEqualToString:@"iPad5,4"])    return @"iPad Air 2";
    
    if([deviceType  isEqualToString:@"iPad6,11"])   return @"iPad 5th";
    
    if([deviceType  isEqualToString:@"iPad6,12"])   return @"iPad 5th";
    
    if([deviceType  isEqualToString:@"iPad7,5"])    return @"iPad 6th";
    
    if([deviceType  isEqualToString:@"iPad7,6"])    return @"iPad 6th";
    
    if([deviceType  isEqualToString:@"iPad11,3"])   return @"iPad Air 3rd";
    
    if([deviceType  isEqualToString:@"iPad11,4"])   return @"iPad Air 3rd";
    
    if([deviceType  isEqualToString:@"iPad7,11"])   return @"iPad Air 7th";
    
    if([deviceType  isEqualToString:@"iPad7,12"])   return @"iPad Air 7th";
    
    if([deviceType  isEqualToString:@"iPad6,7"])    return @"iPad Pro 12.9-inch";
    
    if([deviceType  isEqualToString:@"iPad6,8"])    return @"iPad Pro 12.9-inch";
    
    if([deviceType  isEqualToString:@"iPad6,3"])    return @"iPad Pro 9.7-inch";
    
    if([deviceType  isEqualToString:@"iPad6,4"])    return @"iPad Pro 9.7-inch";
    
    if([deviceType  isEqualToString:@"iPad7,1"])    return @"iPad Pro 12.9-inch 2nd";
    
    if([deviceType  isEqualToString:@"iPad7,2"])    return @"iPad Pro 12.9-inch 2nd";
    
    if([deviceType  isEqualToString:@"iPad7,3"])    return @"iPad Pro 10.5-inch";
    
    if([deviceType  isEqualToString:@"iPad7,4"])    return @"iPad Pro 10.5-inch";
    
    if([deviceType  isEqualToString:@"iPad8,1"])    return @"iPad Pro 11-inch";
    
    if([deviceType  isEqualToString:@"iPad8,2"])    return @"iPad Pro 11-inch";
    
    if([deviceType  isEqualToString:@"iPad8,3"])    return @"iPad Pro 11-inch";
    
    if([deviceType  isEqualToString:@"iPad8,4"])    return @"iPad Pro 11-inch";
    
    if([deviceType  isEqualToString:@"iPad8,5"])    return @"iPad Pro 12.9-inch";
    
    if([deviceType  isEqualToString:@"iPad8,6"])    return @"iPad Pro 12.9-inch";
    
    if([deviceType  isEqualToString:@"iPad8,7"])    return @"iPad Pro 12.9-inch";
    
    if([deviceType  isEqualToString:@"iPad8,8"])    return @"iPad Pro 12.9-inch";
    
    if([deviceType  isEqualToString:@"iPad2,5"])    return @"iPad mini";
    
    if([deviceType  isEqualToString:@"iPad2,6"])    return @"iPad mini";
    
    if([deviceType  isEqualToString:@"iPad2,7"])    return @"iPad mini";
    
    if([deviceType  isEqualToString:@"iPad4,4"])    return @"iPad mini Retina";
    
    if([deviceType  isEqualToString:@"iPad4,5"])    return @"iPad mini Retina";
    
    if([deviceType  isEqualToString:@"iPad4,6"])    return @"iPad mini Retina";
    
    if([deviceType  isEqualToString:@"iPad4,7"])    return @"iPad mini 3";
    
    if([deviceType  isEqualToString:@"iPad4,8"])    return @"iPad mini 3";
    
    if([deviceType  isEqualToString:@"iPad4,9"])    return @"iPad mini 3";
    
    if([deviceType  isEqualToString:@"iPad5,1"])    return @"iPad mini 4";
    
    if([deviceType  isEqualToString:@"iPad5,2"])    return @"iPad mini 4";
    
    if([deviceType  isEqualToString:@"iPad11,1"])   return @"iPad mini 5th";
    
    if([deviceType  isEqualToString:@"iPad11,2"])   return @"iPad mini 5th";
    
    
    
    /// iPod
    if([deviceType  isEqualToString:@"iPod1,1"])    return @"iPod touch 1st";
    
    if([deviceType  isEqualToString:@"iPod2,1"])    return @"iPod touch 2nd";
    
    if([deviceType  isEqualToString:@"iPod3,1"])    return @"iPod touch 3rd";
    
    if([deviceType  isEqualToString:@"iPod4,1"])    return @"iPod touch 4th";
    
    if([deviceType  isEqualToString:@"iPod5,1"])    return @"iPod touch 5th";
    
    if([deviceType  isEqualToString:@"iPod7,1"])    return @"iPod touch 6th";
    
    if([deviceType  isEqualToString:@"iPod9,1"])    return @"iPod touch 7th";
    
    
    return deviceType;
}

+ (NSString *)BST_DeviceVersion {
    return [NSString stringWithFormat:@"%@ %@",[UIDevice currentDevice].systemName,[UIDevice currentDevice].systemVersion];
}

参考:https://www.innerfence.com/howto/apple-ios-devices-dates-versions-instruction-sets

相关文章

网友评论

      本文标题:iOS 设备类型判断

      本文链接:https://www.haomeiwen.com/subject/mbdlyktx.html