您的位置:首页 > 移动开发 > IOS开发

如何获取iOS设备型号,截止到2015-11-20之前的所有iOS设备皆可识别

2015-11-20 11:42 573 查看
获取iOS设备型号,截止到2015-11-20之前的所有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 *)getCurrentDeviceModel;
@end


下面是.m文件 实现这个返回值为NSString的类方法

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

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

@implementation GetDeviceModel
+ (NSString *)getCurrentDeviceModel{

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);

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 Plus";
if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6S";

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 ";
if ([platform isEqualToString:@"iPad6,8"])   return @"iPad Pro WiFi+Cellular";

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


如何使用

首先导入头文件

#import "GetDeviceModel.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];


谢谢观看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: