1、简单判断是否是iPad方法

/** 判断是不是iPad*/

+ (BOOL)isiPadDevice

{

return UIUserInterfaceIdiomPad == [UIDevice currentDevice].userInterfaceIdiom;

}

2、复杂的获取详细设备信息

引用头文件

#import <sys/utsname.h>

然后获取设备的model

struct utsname systemInfo;
uname(&systemInfo);
NSString *model = [NSString stringWithCString: systemInfo.machine encoding:NSASCIIStringEncoding];
NSString *deviceModelName = [self currentModel:model];

再根据设备model获取对应的型号

- (NSString *)currentModel:(NSString *)phoneModel {

//判断手机类型

if ([phoneModel isEqualToString:@"iPhone3,1"] ||
[phoneModel isEqualToString:@"iPhone3,2"]) return @"iPhone 4";
if ([phoneModel isEqualToString:@"iPhone4,1"]) return @"iPhone 4S";
if ([phoneModel isEqualToString:@"iPhone5,1"] ||
[phoneModel isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
if ([phoneModel isEqualToString:@"iPhone5,3"] ||
[phoneModel isEqualToString:@"iPhone5,4"]) return @"iPhone 5C";
if ([phoneModel isEqualToString:@"iPhone6,1"] ||
[phoneModel isEqualToString:@"iPhone6,2"]) return @"iPhone 5S";
if ([phoneModel isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
if ([phoneModel isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
if ([phoneModel isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
if ([phoneModel isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";
if ([phoneModel isEqualToString:@"iPhone8,4"]) return @"iPhone SE";
if ([phoneModel isEqualToString:@"iPhone9,1"]) return @"iPhone 7";
if ([phoneModel isEqualToString:@"iPhone9,2"]) return @"iPhone 7 Plus";
if ([phoneModel isEqualToString:@"iPhone10,1"] ||
[phoneModel isEqualToString:@"iPhone10,4"]) return @"iPhone 8";
if ([phoneModel isEqualToString:@"iPhone10,2"] ||
[phoneModel isEqualToString:@"iPhone10,5"]) return @"iPhone 8 Plus";
if ([phoneModel isEqualToString:@"iPhone10,3"] ||
[phoneModel isEqualToString:@"iPhone10,6"]) return @"iPhone X";

if([phoneModel isEqualToString:@"iPhone11,8"]) return @"iPhone XR";

if([phoneModel isEqualToString:@"iPhone11,2"]) return @"iPhone XS";

if([phoneModel isEqualToString:@"iPhone11,6"]) return @"iPhone XS Max";

//判断iPad类型

if ([phoneModel isEqualToString:@"iPad1,1"]) return @"iPad";
if ([phoneModel isEqualToString:@"iPad2,1"] ||
[phoneModel isEqualToString:@"iPad2,2"] ||
[phoneModel isEqualToString:@"iPad2,3"] ||
[phoneModel isEqualToString:@"iPad2,4"]) return @"iPad 2";
if ([phoneModel isEqualToString:@"iPad3,1"] ||
[phoneModel isEqualToString:@"iPad3,2"] ||
[phoneModel isEqualToString:@"iPad3,3"]) return @"iPad 3";
if ([phoneModel isEqualToString:@"iPad3,4"] ||
[phoneModel isEqualToString:@"iPad3,5"] ||
[phoneModel isEqualToString:@"iPad3,6"]) return @"iPad 4";
if ([phoneModel isEqualToString:@"iPad4,1"] ||
[phoneModel isEqualToString:@"iPad4,2"] ||
[phoneModel isEqualToString:@"iPad4,3"]) return @"iPad Air";
if ([phoneModel isEqualToString:@"iPad5,3"] ||
[phoneModel isEqualToString:@"iPad5,4"]) return @"iPad Air 2";
if ([phoneModel isEqualToString:@"iPad6,3"] ||
[phoneModel isEqualToString:@"iPad6,4"]) return @"iPad Pro 9.7-inch";
if ([phoneModel isEqualToString:@"iPad6,7"] ||
[phoneModel isEqualToString:@"iPad6,8"]) return @"iPad Pro 12.9-inch";
if ([phoneModel isEqualToString:@"iPad6,11"] ||
[phoneModel isEqualToString:@"iPad6,12"]) return @"iPad 5";
if ([phoneModel isEqualToString:@"iPad7,1"] ||
[phoneModel isEqualToString:@"iPad7,2"]) return @"iPad Pro 12.9-inch 2";
if ([phoneModel isEqualToString:@"iPad7,3"] ||
[phoneModel isEqualToString:@"iPad7,4"]) return @"iPad Pro 10.5-inch";

if ([phoneModel isEqualToString:@"iPad2,5"] ||
[phoneModel isEqualToString:@"iPad2,6"] ||
[phoneModel isEqualToString:@"iPad2,7"]) return @"iPad mini";
if ([phoneModel isEqualToString:@"iPad4,4"] ||
[phoneModel isEqualToString:@"iPad4,5"] ||
[phoneModel isEqualToString:@"iPad4,6"]) return @"iPad mini 2";
if ([phoneModel isEqualToString:@"iPad4,7"] ||
[phoneModel isEqualToString:@"iPad4,8"] ||
[phoneModel isEqualToString:@"iPad4,9"]) return @"iPad mini 3";
if ([phoneModel isEqualToString:@"iPad5,1"] ||
[phoneModel isEqualToString:@"iPad5,2"]) return @"iPad mini 4";

//判断iTouch

if ([phoneModel isEqualToString:@"iPod1,1"]) return @"iTouch";
if ([phoneModel isEqualToString:@"iPod2,1"]) return @"iTouch2";
if ([phoneModel isEqualToString:@"iPod3,1"]) return @"iTouch3";
if ([phoneModel isEqualToString:@"iPod4,1"]) return @"iTouch4";
if ([phoneModel isEqualToString:@"iPod5,1"]) return @"iTouch5";
if ([phoneModel isEqualToString:@"iPod7,1"]) return @"iTouch6";

//判断模拟器

if ([phoneModel isEqualToString:@"i386"] || [phoneModel isEqualToString:@"x86_64"]) return @"iPhone Simulator";

return @"Unknown";
}

iOS开发之获取设备类型的更多相关文章

  1. 李洪强iOS开发-网络新闻获取数据思路回顾

    李洪强iOS开发-网络新闻获取数据思路回顾 01 创建一个继承自AFHTTPSessionManager的工具类:LHQNetworkTool 用来发送网络请求获取数据  1.1 定义类方法返回单例对 ...

  2. iOS开发之获取沙盒路径

    iOS开发之沙盒机制(SandBox)具体解说了沙盒的一些机制.在开发中,我们须要对沙盒进行操作.所以我们须要获取到沙盒路径. 沙盒里的目录包含Documents.Library.tmp.这三个目录的 ...

  3. iOS开发中获取WiFi相关信息

    iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的. 1.Ping域名.Ping某IP 有 时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作.这里的p ...

  4. iOS开发中获取视图在屏幕上显示的位置

    在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可 ...

  5. [转载]iOS开发:获取设备信息

    开发iOS平台的应用的时候,可以获取iOS设备的设备信息,包括设备的名称,设备的机型,设备的iOS版本等等.设备信息主要来自 UIDevice 类. UIDevice *currentDevice = ...

  6. iOS开发之 -- 获取设备的唯一标示符

    各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...

  7. IOS 开发之--获取真机的deviceToeken

    获取真机的devicetoken的方法: #pragma mark 注册APNs成功并上报DeviceToken - (void)application:(UIApplication *)applic ...

  8. iOS开发时获取第一响应者

    上篇中提到键盘相应时间中用到了获取当前第一响应者的方法是苹果的是有方法,无法上传到App Store,本文将介绍一种非常简单的且未用到私有API的方法来获取当前第一响应者. 实现思路:用到的iOS A ...

  9. IOS开发之获取Storyboard创建的ViewController

    前面的两篇博客都是学习有关屏幕适配也就是相对布局的东西,这篇博客中将会学习视图间的切换.视图间的切换我们可以用代码完成或者用storyboard来建立各个视图控制器间的关系.在需要用到代码进行切换时会 ...

随机推荐

  1. 简单的连接数据库的java程序模板

    简单的连接数据库的java程序,方便临时使用: import java.sql.*; import java.io.*; import java.sql.DriverManager; import j ...

  2. java开发代码中的50个性能优化细节

    在java程序中,性能的大部分原因并不在java与语言,而是程序本身.养成好的编码习惯非常重要,能够显著地提升程序性能. 1:尽量在合适的场合使用单例 使用单利可以减轻加载的负担,缩短加载时间,提高加 ...

  3. Java:IO流-流的操作规律和转换流

    首先我们先来了解一些IO流基本知识. 一,基本知识概括 具体的IO流有很多种,针对不同的应用场景应该使用相应的流对象.但怎么确定应该使用哪个IO流对象呢? 一般要有四个明确: 1)明确源和目的 源:I ...

  4. python通过套接字来发送接收消息

    案例如下: 1.启动一个服务端套接字服务 2.启动一个客户端套接字服务 3.客户端向服务端发送一个hello,服务端则回复一个word,并打印 参考地址:https://www.cnblogs.com ...

  5. chrome浏览器默认打开网址并全屏

    1.创建chrome快捷方式. 2.右击快捷方式点击属性. 3.属性面板快捷方式下目标的默认内容后添加“ 页面地址 --kiosk”.[注意网页地址和--kiosk之前各有一个英文的空格] 4.点击确 ...

  6. 半导体制造、Fab以及Silicon Processing的基本知识

    本文转载自微信公众号 - 手机技术资讯 , 链接 https://mp.weixin.qq.com/s/602xLKXcIw4ccTnhvDP1xw

  7. JS 两个对象数组合并并去重

    JS两个对象数组合并并去重 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  8. Aras 引入外部的dll

    1.在vs中编译项目.然后找到项目目录生成好的dll. 2.找到Aras的安装目录:...\Aras\Innovator\Innovator\Server,将dll放到该目录下.然后在该目录下找到me ...

  9. ARIMA模型原理

    一.时间序列分析 北京每年每个月旅客的人数,上海飞往北京每年的游客人数等类似这种顾客数.访问量.股价等都是时间序列数据.这些数据会随着时间变化而变化.时间序列数据的特点是数据会随时间的变化而变化. 随 ...

  10. Mybatis-Plus入门

    1 Mybatis-Plus简介 1.1 什么是Mybatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化 ...