获取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手机型号对应iOS系统版本及设备标签

手机型号 发布时间 最低iOS版本 最高iOS版本 备注 iPhone 4 2010年6月7日 iOS 4 iOS 7,但是很勉强   iPhone 4s 2011年10...
  • tianxiawoyougood
  • tianxiawoyougood
  • 2016年11月30日 16:25
  • 6540

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

导入头文件 #import "sys/utsname.h" 方法实现 - (NSString *)getDeviceVersion{ struct utsname systemInfo; ...
  • FlyingKuiKui
  • FlyingKuiKui
  • 2017年06月28日 14:33
  • 576

IOS 获取最新设备型号方法

  • 2014年10月23日 16:17
  • 170KB
  • 下载

iOS设备型号标签列表

i386                   32-bit Simulator x86_64               64-bit Simulator iPod1,1             ...
  • u013370834
  • u013370834
  • 2016年11月28日 09:47
  • 149

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

直接代码: //设备唯一标识符 NSString *identifierStr = [[[UIDevice currentDevice] identifierForVendor] UUIDS...
  • TianYou_Code
  • TianYou_Code
  • 2016年05月18日 14:41
  • 14849

iOS 获取手机型号信息大全

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

iOS 获取手机的型号,系统版本,软件名称,软件版本

网上搜索出来的,记录下来以后使用方便: //手机序列号 NSString* identifierNumber = [[UIDevice currentDevice] uniqueIden...
  • vipa1888
  • vipa1888
  • 2012年10月19日 14:06
  • 11497

iOS开发——获取设备具体型号(2015.11更新)

最新最全的获取iOS设备型号(更新至iPhone6s/iPhone6s+/iPad mini 4/iPad Air 2) 参考:https://www.theiphonewiki.com/w...
  • Bruce__Liu
  • Bruce__Liu
  • 2015年11月09日 15:20
  • 1235

iOS 获取应用信息和设备信息

应用信息 设备信息
  • LOLITA0164
  • LOLITA0164
  • 2018年01月04日 12:31
  • 54

iOS设备型号

所有设备型号对应的官网地址: 官网地址: https://www.theiphonewiki.com/wiki/Models 如果你懒得整理了,直接复制我下边代码: + (NSS...
  • TIANBING878
  • TIANBING878
  • 2017年11月17日 14:17
  • 212
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取iOS设备型号-目前所有iOS设备
举报原因:
原因补充:

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