关闭

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

标签: 获取iOS设备型号ios设备
817人阅读 评论(0) 收藏 举报
分类:

获取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 欢迎访问!
效果展示:
这里写图片描述

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5631次
    • 积分:265
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:1篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论