获取iOS设备型号-目前所有iOS设备

原创 2015年11月20日 11:42:07

获取iOS设备型号,目前所有iOS设备皆可识别
下面是.h文件 声明这个返回值为NSString的类方法

//  GetDeviceModel.h
//  Created by LiynXu on 15/11/10.
//  Copyright © 2015年 LiynXu. All rights reserved.
//  xxl652170427@163.com

#import <Foundation/Foundation.h>

@interface GetDeviceModel : NSObject
/*
 获取设备描述
 */
+ (NSString *)getCurrentDeviceModelDescription;
/*
 由获取到的设备描述,来匹配设备型号
 */
+ (NSString *)getCurrentDeviceModel;
@end

返回值为NSString的类方法
获取设备描述

+ (NSString *)getCurrentDeviceModelDescription{
    int mib[2];
    size_t len;
    char *machine;

    mib[0] = CTL_HW;
    mib[1] = HW_MACHINE;
    sysctl(mib, 2, NULL, &len, NULL, 0);
    machine = malloc(len);
    sysctl(mib, 2, machine, &len, NULL, 0);

    NSString *platform = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
    free(machine);
    return platform;
}

由获取到的设备描述,来匹配设备型号

+ (NSString *)getCurrentDeviceModel{

    NSString *platform = [GetDeviceModel getCurrentDeviceModelDescription];

    if ([platform isEqualToString:@"iPhone1,1"]) return @"iPhone 2G";
    if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone 3G";
    if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS";

    if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone3,3"]) return @"iPhone 4";
    if ([platform isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";

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

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

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

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

    if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6S";
    if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6S Plus";

    if ([platform isEqualToString:@"iPhone9,1"]) return @"iPhone 7 A1660";
    if ([platform isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus A1661";
    if ([platform isEqualToString:@"iPhone9,3"]) return @"iPhone 7 A1778";
    if ([platform isEqualToString:@"iPhone9,4"]) return @"iPhone 7 Plus A1784";

    if ([platform isEqualToString:@"iPod1,1"])   return @"iPod Touch 1G";
    if ([platform isEqualToString:@"iPod2,1"])   return @"iPod Touch 2G";
    if ([platform isEqualToString:@"iPod3,1"])   return @"iPod Touch 3G";
    if ([platform isEqualToString:@"iPod4,1"])   return @"iPod Touch 4G";
    if ([platform isEqualToString:@"iPod5,1"])   return @"iPod Touch 5G";

    if ([platform isEqualToString:@"iPad1,1"])   return @"iPad 1G";

    if ([platform isEqualToString:@"iPad2,1"])   return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,2"])   return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,3"])   return @"iPad 2";
    if ([platform isEqualToString:@"iPad2,4"])   return @"iPad 2";

    if ([platform isEqualToString:@"iPad2,5"])   return @"iPad Mini 1G";
    if ([platform isEqualToString:@"iPad2,6"])   return @"iPad Mini 1G";
    if ([platform isEqualToString:@"iPad2,7"])   return @"iPad Mini 1G";

    if ([platform isEqualToString:@"iPad3,1"])   return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,2"])   return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,3"])   return @"iPad 3";
    if ([platform isEqualToString:@"iPad3,4"])   return @"iPad 4";
    if ([platform isEqualToString:@"iPad3,5"])   return @"iPad 4";
    if ([platform isEqualToString:@"iPad3,6"])   return @"iPad 4";

    if ([platform isEqualToString:@"iPad4,1"])   return @"iPad Air";
    if ([platform isEqualToString:@"iPad4,2"])   return @"iPad Air";
    if ([platform isEqualToString:@"iPad4,3"])   return @"iPad Air";

    if ([platform isEqualToString:@"iPad4,4"])   return @"iPad Mini 2G ";
    if ([platform isEqualToString:@"iPad4,5"])   return @"iPad Mini 2G ";
    if ([platform isEqualToString:@"iPad4,6"])   return @"iPad Mini 2G ";

    if ([platform isEqualToString:@"iPad4,7"])   return @"iPad Mini 3 ";
    if ([platform isEqualToString:@"iPad4,8"])   return @"iPad Mini 3 ";
    if ([platform isEqualToString:@"iPad4,9"])   return @"iPad Mini 3 ";

    if ([platform isEqualToString:@"iPad5,1"])   return @"iPad Mini 4 WiFi  ";
    if ([platform isEqualToString:@"iPad5,2"])   return @"iPad Mini 4 WiFi+Cellular ";

    if ([platform isEqualToString:@"iPad5,3"])   return @"iPad Air2 ";
    if ([platform isEqualToString:@"iPad5,4"])   return @"iPad Air2 ";

    if ([platform isEqualToString:@"iPad6,7"])   return @"iPad Pro WiFi 12.7-inch";
    if ([platform isEqualToString:@"iPad6,8"])   return @"iPad Pro WiFi+Cellular 12.7-inch";

    if ([platform isEqualToString:@"iPad6,3"])   return @"iPad Pro WiFi 9.7-inch";
    if ([platform isEqualToString:@"iPad6,4"])   return @"iPad Pro WiFi+Cellular 9.7-inch";

    if ([platform isEqualToString:@"i386"])      return @"iPhone Simulator";
    if ([platform isEqualToString:@"x86_64"])    return @"iPhone Simulator";
    return platform;
}

如何使用
首先在.m文件中导入以下两个头文件

#import "GetDeviceModel.h"
#import <sys/sysctl.h>

然后在需要获取设备型号地方这样写,用一个NSString类型的对象接收

NSString *string = [GetDeviceModel getCurrentDeviceModel];
NSLog(@"设备型号:%@",string);

也可以给当前app的AppDelegate添加一个DeviceModel属性,一下是AppDelegate的.h文件内容

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic,copy) NSString *DeviceModel;
@end

然后直接想下面这样用就行了

self.DeviceModel = [GetDeviceModel getCurrentDeviceModel];

完整代码演示:https://git.oschina.net/LiynXu/GetDeviceModel.git 欢迎访问!
效果展示:
这里写图片描述

相关文章推荐

Iphone各个型号机型的尺寸

转载他人的博客:http://blog.csdn.net/phunxm/article/details/42174937

ios获取手机型号、系统版本、设备唯一标识符、手机运营商等

直接代码: //设备唯一标识符 NSString *identifierStr = [[[UIDevice currentDevice] identifierForVendor] UUIDS...

iOS开发之获取设备型号(最新)

最新最全的获取iOS设备型号(更新至iPhone6s/iPhone6s+/iPad mini 4/iPad Air 2) 参考:https://www.theiphonewiki.com/wiki/...

iOS_获取设备型号、手机系统版本

导入头文件 #import "sys/utsname.h" 方法实现 - (NSString *)getDeviceVersion{ struct utsname systemInfo; ...

iOS 获取手机型号信息大全

我们在网上查到的一般都是被人给过的已知手机型号名,但是如果有新设备的话我们怎么获得呢,这里贴出个网址供查询https://www.theiphonewiki.com/wiki/Models,这样我们就...

ios swift 获取设备型号 版本

这段代码可以获取到具体的设备版本(已更新到iPhone 6s、iPhone 6s Plus), 缺点是:采用的硬编码。具体的对应关系, 其他iPad, iPod等设备可以参考:点击打开链接 https...

2014-11-IOS 获取最新设备型号方法

+ (NSString *)getCurrentDeviceModel:(UIViewController *)controller {     int mib[2];     size_t l...
  • tmsh113
  • tmsh113
  • 2014年11月28日 15:36
  • 456

[iOS]获取设备具体型号信息

应用统计中有时候需要上传设备型号,如果这样写:[[UIDevice currentDevice] model]获得的设备型号不是具体型号,如在iPhone5S上面运行,实测得到字符串为@”iPhone...

获取iOS 设备型号

iOS 设备型号

ios判断当前设备是否是ipad

如果想要判断设备是ipad,要用如下方法 + (BOOL)getIsIpad { NSString *deviceType = [UIDevice currentDevice].model; ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取iOS设备型号-目前所有iOS设备
举报原因:
原因补充:

(最多只允许输入30个字)