三种常用的办法获取iOS设备的型号:

1. [UIDevice currentDevice].model (推荐);

2. uname(struct utsname *name) ,使用此函数需要#include ;

3.sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp,

size_t newlen) ,使用此函数需要#include ,#include;

推荐使用第一种方法,为最上层的API,在项目开发中推荐使用高级的API ,因为其识别度高,更简洁易用。2、3两种都是BSD级别的API ,为底层的API,不推荐。

示例:

1. NSString * strModel  = [UIDevice currentDevice].model ;

2. struct utsname systemInfo

uname(&systemInfo)

NSString * strModel = [NSString stringWithCString:systemInfo.machine

encoding:NSUTF8StringEncoding];

3. size_t size

sysctlbyname ("hw.machine" , NULL , &size ,NULL ,0)

char *model = (char *)malloc(size)

sysctlbyname ("hw.machine" , model , &size ,NULL ,0)

NSString * strModel = [NSString stringWithCString: model

encoding:NSUTF8StringEncoding];

获取了设备型号之后,还不能准确的了解其设备类型,还需要找到与其型号对应的设备说明。

如iPad2,1对应的是 iPad2(WIFI)。

此对应表已有前人很好总结出来:

struct utsname systemInfo;

uname(&systemInfo);
NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
 

通过,如上方式即可获取到设备的型号信息,具体对应关系如下,截止2013,2,5。

  iphone 5,1   iphone5(移动,联通)
  iphone 5,2   iphone5(移动,电信,联通)
  iphone 4,1     iphone4S
  iphone 3,1     iphone4(移动,联通)
  iphone 3,2     iphone4(联通)
  iphone 3,3     iphone4(电信)
  iphone 2,1       iphone3GS
  iphone 1,2     iphone3G
  iphone 1,1     iphone
  ipad 1,1     ipad 1
  ipad 2,1     ipad 2(Wifi)
  ipad 2,2     ipad 2(GSM)
  ipad 2,3     ipad 2(CDMA)
  ipad 2,4     ipad 2(32nm)
  ipad 2,5     ipad mini(Wifi)
  ipad 2,6     ipad mini(GSM)
  ipad 2,7     ipad mini(CDMA)
  ipad 3,1     ipad 3(Wifi)
  ipad 3,2     ipad 3(CDMA)
  ipad 3,3     ipad 3(4G)
  ipad 3,4     ipad 4(Wifi)
  ipad 3,5     ipad 4(4G)
  ipad 3,6     ipad 4(CDMA)
  ipod 5,1     ipod touch 5
  ipod 4,1     ipod touch 4
  ipod 3,1     ipod touch 3
  ipod 2,1     ipod touch 2
  ipod 1,1     ipod touch

获取iOS设备型号的方法总结的更多相关文章

  1. 获取iOS设备型号iphone ipad

    #import <sys/sysctl.h> //获得设备型号 -(NSString *)getCurrentDeviceModel { int mib[2]; size_t len; c ...

  2. 获取ios设备系统信息的方法 之 [UIDevice currentDevice]

    获取iphone的系统信息使用[UIDevice currentDevice],信息如下: [[UIDevice currentDevice] systemName]:系统名称,如iPhone OS ...

  3. IOS 获取最新设备型号方法

    1.IOS 获取最新设备型号方法列表最新对照表:http://theiphonewiki.com/wiki/Models方法: #import "sys/utsname.h” struct ...

  4. 获取iOS设备的型号

    获取iOS设备的型号 需要#import "sys/utsname.h"     structutsname systemInfo;     uname(&systemIn ...

  5. iOS学习——获取iOS设备的各种信息

    不管是在Android开发还是iOS开发过程中,有时候我们需要经常根据设备的一些状态或信息进行不同的设置和性能配置,例如横竖屏切换时,电池电量低时,内存不够时,网络切换时等等,我们在这时候需要进行一些 ...

  6. 获取ios设备的udid

    今天get的第二个技能~~~ UDID指的是设备的唯一设备识别符,ipa包未上架之前如果不添加udid是无法安装成功的.那么如何快速获取ios设备的udid呢? 今天get的方法是用蒲公英,网址:ht ...

  7. 获取iOS设备唯一标识

    [获取iOS设备唯一标识] 1.已禁用-[UIDevice uniqueIdentifier] 苹果总是把用户的隐私看的很重要.-[UIDevice uniqueIdentifier]在iOS5实际在 ...

  8. Unity3D开发之“获取IOS设备所在的国家代码"

    原地址:http://dong2008hong.blog.163.com/blog/static/469688272014021025578/ 在前一段时间游戏开发中需要实现获取IOS设备所在的国家代 ...

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

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

随机推荐

  1. 关于 ASP.NET vNext

    ASP.NET vNext 最大的特性就是跨平台(基于 Mono 运行时),试想下:作为.NET程序员,终于不被Java或C++程序员挑自己的短板,确实是蛮振奋人心的.当然,除了跨平台,使用 Rosl ...

  2. Linux系统下安装ISO文件

    1.在/mnt目录下,创建相应的iso文件夹,例如cd1,cd2. 2.然后,用命令:mount -o loop /home/kinglu/Matlab/matlab1.iso(iso文件路径名) / ...

  3. TortoiseSVN 安装中文语言包,SVN中文语言包

    SVN中TortoiseSVN 是比较出门的一款SVN软件 TortoiseSVN 是Subversion 版本控制系统的一个免费开源客户端. 由于TortoiseSVN 默认是英文的:所以很多小伙伴 ...

  4. jquery slideDown slideUp 对于table无效

    jquery slideDown slideUp 对于table无效,需要在table外面套一层div才可以使用

  5. Kettle ETL 来进行mysql 数据同步——试验环境搭建(表中无索引,无约束,无外键连接的情况)

    今天试验了如何在Kettle的图形界面(Spoon)下面来整合来mysql 数据库中位于不同数据库中的数据表中的数据. 试验用的数据表是customers: 第三方的数据集下载地址是:http://w ...

  6. sublime 安装 Terminal 使用 cmder

    在 packagecontrol.io 可以找到 Terminal. 在 cmder.net 下载 cmder 复制 Terminal.sublime-settings 文件到 C:\Users\WX ...

  7. OpenJudge/Poj 1664 放苹果

    1.链接地址: http://bailian.openjudge.cn/practice/1664 http://poj.org/problem?id=1664 2.题目: 总时间限制: 1000ms ...

  8. 带你初识Angular中MVC模型

    简介 MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计模式,该模型的理念也被许多框架所吸纳,比如,后端框架(Struts.Spring MVC等).前端框 ...

  9. Vsftpd -- 验证方式

    vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问.本地用户和虚拟用户: 匿名访问:任何人无需验证口令即可登入FTP服务端. 本地用户:使用FTP服务器中的用户.密码信息. 虚拟用户:创建独 ...

  10. 鸟哥笔记:syslogd:记录日志文件的服务

    日志文件内容的一般格式 一般来说,系统产生的信息经过syslogd记录下来的数据中,每条信息均记录下面的几个重要数据: 事件发生的日期与时间: 发生此事的主机名: 启动此事件的服务名称(如 samba ...