iOS开发------获取iPhone的具体型号
2016-05-04 14:23
621 查看
开发过程中后台有这么一个需求,需要将iPhone的手机型号传过去,就写了一个
声明文件如下:
实现方法如下:
使用以下语句来获取当前手机的具体型号:
UIDevice的
Categroy来获取当前手机的具体型号,自然也包含了最新的SE,当然,这篇博文也会根据最新iPhone的发版不断地更新。没啥好说的,直接上代码吧,
声明文件如下:
// // UIDevice+YiPhoneModel.h // CityBike // // Created by YueWen on 16/3/16. // Copyright © 2016年 YueWen. All rights reserved. // #import <Foundation/Foundation.h> extern NSString * const Device_Simulator; extern NSString * const Device_iPod1; extern NSString * const Device_iPod2; extern NSString * const Device_iPod3; extern NSString * const Device_iPod4; extern NSString * const Device_iPod5; extern NSString * const Device_iPad2; extern NSString * const Device_iPad3; extern NSString * const Device_iPad4; extern NSString * const Device_iPhone4; extern NSString * const Device_iPhone4S; extern NSString * const Device_iPhone5; extern NSString * const Device_iPhone5S; extern NSString * const Device_iPhone5C; extern NSString * const Device_iPadMini1; extern NSString * const Device_iPadMini2; extern NSString * const Device_iPadMini3; extern NSString * const Device_iPadAir1; extern NSString * const Device_iPadAir2; extern NSString * const Device_iPhone6; extern NSString * const Device_iPhone6plus; extern NSString * const Device_iPhone6S; extern NSString * const Device_iPhone6Splus; extern NSString * const Device_iPhoneSE; extern NSString * const Device_Unrecognized; /** * 获取手机型号的 类目 */ @interface UIDevice (YiPhoneModel) /** * 获取当前手机的具体型号 * * @return 手机型号字符串 */ - (NSString *)phoneModel NS_AVAILABLE_IOS(7_0); @end
实现方法如下:
#import "UIDevice+YiPhoneModel.h" #import <sys/utsname.h> NSString * const Device_Simulator = @"Simulator"; NSString * const Device_iPod1 = @"iPod1"; NSString * const Device_iPod2 = @"iPod2"; NSString * const Device_iPod3 = @"iPod3"; NSString * const Device_iPod4 = @"iPod4"; NSString * const Device_iPod5 = @"iPod5"; NSString * const Device_iPad2 = @"iPad2"; NSString * const Device_iPad3 = @"iPad3"; NSString * const Device_iPad4 = @"iPad4"; NSString * const Device_iPhone4 = @"iPhone 4"; NSString * const Device_iPhone4S = @"iPhone 4S"; NSString * const Device_iPhone5 = @"iPhone 5"; NSString * const Device_iPhone5S = @"iPhone 5S"; NSString * const Device_iPhone5C = @"iPhone 5C"; NSString * const Device_iPadMini1 = @"iPad Mini 1"; NSString * const Device_iPadMini2 = @"iPad Mini 2"; NSString * const Device_iPadMini3 = @"iPad Mini 3"; NSString * const Device_iPadAir1 = @"iPad Air 1"; NSString * const Device_iPadAir2 = @"iPad Mini 3"; NSString * const Device_iPhone6 = @"iPhone 6"; NSString * const Device_iPhone6plus = @"iPhone 6 Plus"; NSString * const Device_iPhone6S = @"iPhone 6S"; NSString * const Device_iPhone6Splus = @"iPhone 6S Plus"; NSString * const Device_iPhoneSE = @"iPhone SE"; NSString * const Device_Unrecognized = @"unrecognized"; @implementation UIDevice (YiPhoneModel) -(NSString *)phoneModel { //创建utsname结构体 struct utsname systemInfo; //构造结构体 uname(&systemInfo); //将字符串进行转码 NSString* code = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; static NSDictionary* deviceNamesByCode = nil; if (!deviceNamesByCode) { deviceNamesByCode = @{ @"i386" : Device_Simulator, @"x86_64" : Device_Simulator, @"iPod1,1" : Device_iPod1, @"iPod2,1" : Device_iPod2, @"iPod3,1" : Device_iPod3, @"iPod4,1" : Device_iPod4, @"iPod5,1" : Device_iPod5, @"iPad2,1" : Device_iPad2, @"iPad2,2" : Device_iPad2, @"iPad2,3" : Device_iPad2, @"iPad2,4" : Device_iPad2, @"iPad2,5" : Device_iPadMini1, @"iPad2,6" : Device_iPadMini1, @"iPad2,7" : Device_iPadMini1, @"iPhone3,1" : Device_iPhone4, @"iPhone3,2" : Device_iPhone4, @"iPhone3,3" : Device_iPhone4, @"iPhone4,1" : Device_iPhone4S, @"iPhone5,1" : Device_iPhone5, @"iPhone5,2" : Device_iPhone5, @"iPhone5,3" : Device_iPhone5C, @"iPhone5,4" : Device_iPhone5C, @"iPad3,1" : Device_iPad3, @"iPad3,2" : Device_iPad3, @"iPad3,3" : Device_iPad3, @"iPad3,4" : Device_iPad4, @"iPad3,5" : Device_iPad4, @"iPad3,6" : Device_iPad4, @"iPhone6,1" : Device_iPhone5S, @"iPhone6,2" : Device_iPhone5S, @"iPad4,1" : Device_iPadAir1, @"iPad4,2" : Device_iPadAir2, @"iPad4,4" : Device_iPadMini2, @"iPad4,5" : Device_iPadMini2, @"iPad4,6" : Device_iPadMini2, @"iPad4,7" : Device_iPadMini3, @"iPad4,8" : Device_iPadMini3, @"iPad4,9" : Device_iPadMini3, @"iPhone7,1" : Device_iPhone6plus, @"iPhone7,2" : Device_iPhone6, @"iPhone8,1" : Device_iPhone6S, @"iPhone8,2" : Device_iPhone6Splus, @"iPhone8,4" : Device_iPhoneSE }; } NSString* deviceName = [deviceNamesByCode objectForKey:code]; if(deviceName){ return deviceName; } return Device_Unrecognized; } @end
使用以下语句来获取当前手机的具体型号:
NSString * phoneCode = [UIDevice currentDevice].phoneModel;
相关文章推荐
- 大牛博客源
- iOS开发之XIB中Cell出现警告的消除方法
- iOS~runtime初览
- ios 定位提示 现实之后立马消失解决之道
- IOS开发之——登录加密也许用到的,反转字符串
- iOS监控系统音量 手机音量
- iOS多线程
- iOS开发 ☞ AFNetWorking
- iOS 控制系统的音量改变
- iOS中利用 runtime 一键改变字体
- IOS全屏左侧滑(系统方法)
- iOS之JS交互
- iOS 取得ipa里面的图片
- 判断 iOS wifi 是否打开
- iOS 毛玻璃
- Runtime方法的使用—Protocol、SEL篇
- iOS tableView分组
- iOS开发中如何自定义tableView的分割线
- iOS开发之自定义AlertView
- iOS不同模式返回根视图的方法