+ (NSString*)deviceString
{
// 需要#import "sys/utsname.h"
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; if ([deviceString isEqualToString:@"iPhone1,1"]) return @"iPhone 2G (A1203)";
if ([deviceString isEqualToString:@"iPhone1,2"]) return @"iPhone 3G (A1241/A1324)";
if ([deviceString isEqualToString:@"iPhone2,1"]) return @"iPhone 3GS (A1303/A1325)";
if ([deviceString isEqualToString:@"iPhone3,1"]) return @"iPhone 4 (A1332)";
if ([deviceString isEqualToString:@"iPhone3,2"]) return @"iPhone 4 (A1332)";
if ([deviceString isEqualToString:@"iPhone3,3"]) return @"iPhone 4 (A1349)";
if ([deviceString isEqualToString:@"iPhone4,1"]) return @"iPhone 4S (A1387/A1431)";
if ([deviceString isEqualToString:@"iPhone5,1"]) return @"iPhone 5 (A1428)";
if ([deviceString isEqualToString:@"iPhone5,2"]) return @"iPhone 5 (A1429/A1442)";
if ([deviceString isEqualToString:@"iPhone5,3"]) return @"iPhone 5c (A1456/A1532)";
if ([deviceString isEqualToString:@"iPhone5,4"]) return @"iPhone 5c (A1507/A1516/A1526/A1529)";
if ([deviceString isEqualToString:@"iPhone6,1"]) return @"iPhone 5s (A1453/A1533)";
if ([deviceString isEqualToString:@"iPhone6,2"]) return @"iPhone 5s (A1457/A1518/A1528/A1530)";
if ([deviceString isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus (A1522/A1524)";
if ([deviceString isEqualToString:@"iPhone7,2"]) return @"iPhone 6 (A1549/A1586)";
if ([deviceString isEqualToString:@"iPhone8,1"]) return @"iPhone 6S";
if ([deviceString isEqualToString:@"iPhone8,2"]) return @"iPhone 6S Plus"; if ([deviceString isEqualToString:@"iPhone8,4"]) return @"iPhone SE"; if ([deviceString isEqualToString:@"iPhone9,1"]) return @"iPhone 7"; if ([deviceString isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus"; if ([deviceString isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G (A1213)";
if ([deviceString isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G (A1288)";
if ([deviceString isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G (A1318)";
if ([deviceString isEqualToString:@"iPod4,1"]) return @"iPod Touch 4G (A1367)";
if ([deviceString isEqualToString:@"iPod5,1"]) return @"iPod Touch 5G (A1421/A1509)"; if ([deviceString isEqualToString:@"iPad1,1"]) return @"iPad 1G (A1219/A1337)"; if ([deviceString isEqualToString:@"iPad2,1"]) return @"iPad 2 (A1395)";
if ([deviceString isEqualToString:@"iPad2,2"]) return @"iPad 2 (A1396)";
if ([deviceString isEqualToString:@"iPad2,3"]) return @"iPad 2 (A1397)";
if ([deviceString isEqualToString:@"iPad2,4"]) return @"iPad 2 (A1395+New Chip)";
if ([deviceString isEqualToString:@"iPad2,5"]) return @"iPad Mini 1G (A1432)";
if ([deviceString isEqualToString:@"iPad2,6"]) return @"iPad Mini 1G (A1454)";
if ([deviceString isEqualToString:@"iPad2,7"]) return @"iPad Mini 1G (A1455)"; if ([deviceString isEqualToString:@"iPad3,1"]) return @"iPad 3 (A1416)";
if ([deviceString isEqualToString:@"iPad3,2"]) return @"iPad 3 (A1403)";
if ([deviceString isEqualToString:@"iPad3,3"]) return @"iPad 3 (A1430)";
if ([deviceString isEqualToString:@"iPad3,4"]) return @"iPad 4 (A1458)";
if ([deviceString isEqualToString:@"iPad3,5"]) return @"iPad 4 (A1459)";
if ([deviceString isEqualToString:@"iPad3,6"]) return @"iPad 4 (A1460)"; if ([deviceString isEqualToString:@"iPad4,1"]) return @"iPad Air (A1474)";
if ([deviceString isEqualToString:@"iPad4,2"]) return @"iPad Air (A1475)";
if ([deviceString isEqualToString:@"iPad4,3"]) return @"iPad Air (A1476)";
if ([deviceString isEqualToString:@"iPad4,4"]) return @"iPad Mini 2G (A1489)";
if ([deviceString isEqualToString:@"iPad4,5"]) return @"iPad Mini 2G (A1490)";
if ([deviceString isEqualToString:@"iPad4,6"]) return @"iPad Mini 2G (A1491)"; if ([deviceString isEqualToString:@"i386"]) return @"iPhone Simulator";
if ([deviceString isEqualToString:@"x86_64"]) return @"iPhone Simulator";
return deviceString;
}

  

iOS 判断设备型号的更多相关文章

  1. iOS获取设备型号、装置类型等信息

    iOS获取设备型号.设备类型等信息 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然而他们都陆陆续续倒在了苹果的门下.苹果目前提供了2个方法供App获取设 ...

  2. iOS获取设备型号和App版本号等信息(OC+Swift)

    iOS获取设备型号和App版本号等信息(OC+Swift) 字数1687 阅读382 评论3 喜欢10 好久没有写过博客了,因为中间工作比较忙,然后有些个人事情所以耽误了.但是之前写的博客还一直有人来 ...

  3. IOS判断设备是否已越狱

    转自:http://www.cnblogs.com/supercheng/archive/2012/12/05/2804166.html - (BOOL)isJailbroken { BOOL jai ...

  4. iOS获取设备型号

    导入头文件 #include <sys/types.h> #include <sys/sysctl.h> 直接调用 //获得设备型号 + (NSString *)getCurr ...

  5. iOS 获取设备型号以及IP地址

    首先导入四个头文件 #include <sys/types.h> #include <sys/sysctl.h> #include <ifaddrs.h> #inc ...

  6. iOS 获取设备型号 ip6更新

    //获得设备型号 + (NSString *)getCurrentDeviceModel:(UIViewController *)controller { ]; size_t len; char *m ...

  7. iOS获取设备型号的方法

    1. [UIDevice currentDevice].model   自己写的看只抓到模拟器和iPhone.暂时不推荐. 2.自己写的找的方法再添加.直接  NSString * deviceMod ...

  8. (转)iOS获取设备型号

    //获得设备型号 + (NSString *)getCurrentDeviceModel:(UIViewController *)controller { ]; size_t len; char *m ...

  9. iOS获取设备型号、设备类型等信息

    摘自 :http://www.mamicode.com/info-detail-1165460.html 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然 ...

随机推荐

  1. C++设计模式-Bridge桥接模式

    作用:将抽象部份与它的实现部份分离,使它们都可以独立地变化. 将抽象(Abstraction)与实现(Implementation)分离,使得二者可以独立地变化. 桥接模式号称设计模式中最难理解的模式 ...

  2. variably modified 'dist' at file scope|

    转自:http://blog.csdn.net/wusuopubupt/article/details/18408227 错误原因: The reason for this warning is th ...

  3. 在virtualbox(win7)下使用USB摄像头

    解决方法: 去https://www.virtualbox.org/wiki/Downloads下载VirtualBox 4.3.8 Oracle VM VirtualBox Extension Pa ...

  4. extentreports报告插件之extentX之服务搭建(三)

    之前两个章节已经写完再extentreports报告插件与testng 的集成,但是发现 每次测试完后,生成的报告都要在单独发送,每个项目都有一份报告,如果项目多的话,管理起来就会很冗余. 这个给大家 ...

  5. tr:even 与tr:odd

    :even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1.3.5...行(即索引值0.2.4...)<table> <tr><td>Header 1< ...

  6. jquery append 方法应用

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>< ...

  7. Tcp/IP

     在数据传输完毕之后,通信双方都可以发出释放连接的请求.释放连接的过程为如上图所示:      1)数据传输结束后,主机A的应用进程先向其TCP发出释放连接请求,不在发送数据.TCP通知对方要释放从A ...

  8. Ninject之旅之三:Ninject对象生命周期

    摘要 DI容器的一个责任是管理他创建的对象的生命周期.他应该决定什么时候创建一个给定类型的对象,什么时候使用已经存在的对象.他还需要在对象不需要的时候处理对象.Ninject在不同的情况下管理对象的生 ...

  9. OpenLayers Map理解

    1,视口坐标的原点在左上角,水平向右为x轴正向,垂直向下为y 轴正向:2,地图坐标原点为初始图层的中心点,水平向右为x轴正向,垂直向上为y轴正向:3,视口中心点永远与地图中心点重合,不一定与瓦片中心点 ...

  10. Android启动标记

    1. Task是包含一系列Activity的堆栈, 遵循先进后出原则. 2. Task默认行为: (1) 前提: Activity A和Activity B在同一个应用中. 操作: Activity ...