iOS 苹果手机各种机型与型号对照,代码

1 篇文章 0 订阅
#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger, DeviceType) {
    unKnown = -1,
    iPhone_2G = 0,
    iPhone_3G,
    iPhone_3GS,
    iPhone_4,
    iPhone_4S,
    iPhone_5,
    iPhone_5c,
    iPhone_5s,
    iPhone_6,
    iPhone_6_Plus,
    iPhone_6s,
    iPhone_6s_Plus,
    iPhone_SE,
    iPhone_7,
    iPhone_7_Plus,
    iPhone_8,
    iPhone_8_Plus,
    iPhone_SE_2,
    iPhone_X,
    iPhone_XR,
    iPhone_XS,
    iPhone_XS_Max,
    iPhone_11,
    iPhone_11_Pro,
    iPhone_11_Pro_Max,
    iPhone_12_mini,
    iPhone_12,
    iPhone_12_Pro,
    iPhone_12_Pro_Max,
    iPhone_13_mini,
    iPhone_13,
    iPhone_13_Pro,
    iPhone_13_Pro_Max
};

@interface JDDeviceTool : NSObject

+ (DeviceType)currentDevice;
+ (NSString *)currentDeviceStr;
+ (BOOL)isDevice:(DeviceType)deviceType;
+ (BOOL)isiPad;

@end

NS_ASSUME_NONNULL_END



#import "JDDeviceTool.h"
#import <sys/utsname.h>

@implementation JDDeviceTool

+ (DeviceType)currentDevice {
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString*phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];

    if([phoneType  isEqualToString:@"iPhone1,1"])  return iPhone_2G;
    if([phoneType  isEqualToString:@"iPhone1,2"])  return iPhone_3G;
    if([phoneType  isEqualToString:@"iPhone2,1"])  return iPhone_3GS;
    if([phoneType  isEqualToString:@"iPhone3,1"])  return iPhone_4;
    if([phoneType  isEqualToString:@"iPhone3,2"])  return iPhone_4;
    if([phoneType  isEqualToString:@"iPhone3,3"])  return iPhone_4;
    if([phoneType  isEqualToString:@"iPhone4,1"])  return iPhone_4S;
    if([phoneType  isEqualToString:@"iPhone5,1"])  return iPhone_5;
    if([phoneType  isEqualToString:@"iPhone5,2"])  return iPhone_5;
    if([phoneType  isEqualToString:@"iPhone5,3"])  return iPhone_5c;
    if([phoneType  isEqualToString:@"iPhone5,4"])  return iPhone_5c;
    if([phoneType  isEqualToString:@"iPhone6,1"])  return iPhone_5s;
    if([phoneType  isEqualToString:@"iPhone6,2"])  return iPhone_5s;
    if([phoneType  isEqualToString:@"iPhone7,1"])  return iPhone_6_Plus;
    if([phoneType  isEqualToString:@"iPhone7,2"])  return iPhone_6;
    if([phoneType  isEqualToString:@"iPhone8,1"])  return iPhone_6s;
    if([phoneType  isEqualToString:@"iPhone8,2"])  return iPhone_6s_Plus;
    if([phoneType  isEqualToString:@"iPhone8,4"])  return iPhone_SE;
    if([phoneType  isEqualToString:@"iPhone9,1"])  return iPhone_7;
    if([phoneType  isEqualToString:@"iPhone9,2"])  return iPhone_7_Plus;
    if([phoneType  isEqualToString:@"iPhone10,1"]) return iPhone_8;
    if([phoneType  isEqualToString:@"iPhone10,4"]) return iPhone_8;
    if([phoneType  isEqualToString:@"iPhone10,2"]) return iPhone_8_Plus;
    if([phoneType  isEqualToString:@"iPhone10,5"]) return iPhone_8_Plus;
    if([phoneType  isEqualToString:@"iPhone10,3"]) return iPhone_X;
    if([phoneType  isEqualToString:@"iPhone10,6"]) return iPhone_X;
    if([phoneType  isEqualToString:@"iPhone11,8"]) return iPhone_XR;
    if([phoneType  isEqualToString:@"iPhone11,2"]) return iPhone_XS;
    if([phoneType  isEqualToString:@"iPhone11,4"]) return iPhone_XS_Max;
    if([phoneType  isEqualToString:@"iPhone11,6"]) return iPhone_XS_Max;
    if([phoneType  isEqualToString:@"iPhone12,1"]) return iPhone_11;
    if([phoneType  isEqualToString:@"iPhone12,3"]) return iPhone_11_Pro;
    if([phoneType  isEqualToString:@"iPhone12,5"]) return iPhone_11_Pro_Max;
    if([phoneType  isEqualToString:@"iPhone12,8"]) return iPhone_SE_2;
    if([phoneType  isEqualToString:@"iPhone13,1"]) return iPhone_12_mini;
    if([phoneType  isEqualToString:@"iPhone13,2"]) return iPhone_12;
    if([phoneType  isEqualToString:@"iPhone13,3"]) return iPhone_12_Pro;
    if([phoneType  isEqualToString:@"iPhone13,4"]) return iPhone_12_Pro_Max;
    if([phoneType  isEqualToString:@"iPhone14,4"]) return iPhone_13_mini;
    if([phoneType  isEqualToString:@"iPhone14,5"]) return iPhone_13;
    if([phoneType  isEqualToString:@"iPhone14,2"]) return iPhone_13_Pro;
    if([phoneType  isEqualToString:@"iPhone14,3"]) return iPhone_13_Pro_Max;
    
    return unKnown;
}

+ (NSString *)currentDeviceStr {
    struct utsname systemInfo;
    uname(&systemInfo);
    NSString*phoneType = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];

    if([phoneType  isEqualToString:@"iPhone1,1"])  return @"iPhone_2G";
    if([phoneType  isEqualToString:@"iPhone1,2"])  return @"iPhone_3G";
    if([phoneType  isEqualToString:@"iPhone2,1"])  return @"iPhone_3GS";
    if([phoneType  isEqualToString:@"iPhone3,1"])  return @"iPhone_4";
    if([phoneType  isEqualToString:@"iPhone3,2"])  return @"iPhone_4";
    if([phoneType  isEqualToString:@"iPhone3,3"])  return @"iPhone_4";
    if([phoneType  isEqualToString:@"iPhone4,1"])  return @"iPhone_4S";
    if([phoneType  isEqualToString:@"iPhone5,1"])  return @"iPhone_5";
    if([phoneType  isEqualToString:@"iPhone5,2"])  return @"iPhone_5";
    if([phoneType  isEqualToString:@"iPhone5,3"])  return @"iPhone_5c";
    if([phoneType  isEqualToString:@"iPhone5,4"])  return @"iPhone_5c";
    if([phoneType  isEqualToString:@"iPhone6,1"])  return @"iPhone_5s";
    if([phoneType  isEqualToString:@"iPhone6,2"])  return @"iPhone_5s";
    if([phoneType  isEqualToString:@"iPhone7,1"])  return @"iPhone_6_Plus";
    if([phoneType  isEqualToString:@"iPhone7,2"])  return @"iPhone_6";
    if([phoneType  isEqualToString:@"iPhone8,1"])  return @"iPhone_6s";
    if([phoneType  isEqualToString:@"iPhone8,2"])  return @"iPhone_6s_Plus";
    if([phoneType  isEqualToString:@"iPhone8,4"])  return @"iPhone_SE";
    if([phoneType  isEqualToString:@"iPhone9,1"])  return @"iPhone_7";
    if([phoneType  isEqualToString:@"iPhone9,2"])  return @"iPhone_7_Plus";
    if([phoneType  isEqualToString:@"iPhone10,1"]) return @"iPhone_8";
    if([phoneType  isEqualToString:@"iPhone10,4"]) return @"iPhone_8";
    if([phoneType  isEqualToString:@"iPhone10,2"]) return @"iPhone_8_Plus";
    if([phoneType  isEqualToString:@"iPhone10,5"]) return @"iPhone_8_Plus";
    if([phoneType  isEqualToString:@"iPhone10,3"]) return @"iPhone_X";
    if([phoneType  isEqualToString:@"iPhone10,6"]) return @"iPhone_X";
    if([phoneType  isEqualToString:@"iPhone11,8"]) return @"iPhone_XR";
    if([phoneType  isEqualToString:@"iPhone11,2"]) return @"iPhone_XS";
    if([phoneType  isEqualToString:@"iPhone11,4"]) return @"iPhone_XS_Max";
    if([phoneType  isEqualToString:@"iPhone11,6"]) return @"iPhone_XS_Max";
    if([phoneType  isEqualToString:@"iPhone12,1"]) return @"iPhone_11";
    if([phoneType  isEqualToString:@"iPhone12,3"]) return @"iPhone_11_Pro";
    if([phoneType  isEqualToString:@"iPhone12,5"]) return @"iPhone_11_Pro_Max";
    if([phoneType  isEqualToString:@"iPhone12,8"]) return @"iPhone_SE_2";
    if([phoneType  isEqualToString:@"iPhone13,1"]) return @"iPhone_12_mini";
    if([phoneType  isEqualToString:@"iPhone13,2"]) return @"iPhone_12";
    if([phoneType  isEqualToString:@"iPhone13,3"]) return @"iPhone_12_Pro";
    if([phoneType  isEqualToString:@"iPhone13,4"]) return @"iPhone_12_Pro_Max";
    if([phoneType  isEqualToString:@"iPhone14,4"]) return @"iPhone_13_mini";
    if([phoneType  isEqualToString:@"iPhone14,5"]) return @"iPhone_13";
    if([phoneType  isEqualToString:@"iPhone14,2"]) return @"iPhone_13_Pro";
    if([phoneType  isEqualToString:@"iPhone14,3"]) return @"iPhone_13_Pro_Max";
    
    return phoneType;
}

+ (BOOL)isDevice:(DeviceType)deviceType {
    if (deviceType == [JDDeviceTool currentDevice]) {
        return YES;
    }
    return NO;
}

+ (BOOL)isiPad {
    NSString *deviceType = [UIDevice currentDevice].model;
    if ([deviceType isEqualToString:@"iPad"]) {
        return YES;
    }
    return NO;
}

@end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值