獲取iPhone設(shè)備型號

目前常用的是通過屏幕分辨率來區(qū)分iphone設(shè)備型號(iphone4、iphone5蛤奢、iphoneX等等)鬼癣,不過在有些時候使用這個方法判斷會出現(xiàn)錯誤的結(jié)果陶贼。經(jīng)過查閱資料,找到以下方法來判斷待秃,此方法是相當(dāng)?shù)目孔V拜秧!靠譜!靠譜U掠簟M鞯!廢話不多說暖庄,直接上代碼:

ps:需要引入頭文件:

#import "sys/utsname.h"

#import <UIKit/UIkit.h>

.h文件:

typedefNS_ENUM(NSInteger,APDeviceType) {

? ? APDeviceIphone4 =0,//iphone4系列設(shè)備

? ? APDeviceIphone5,//iphone5系列設(shè)備

? ? APDeviceIphone6,//iphone6系列設(shè)備

? ? APDeviceIphonePlus,//iphonePlus系列設(shè)備

? ? APDeviceIphoneX,//iphoneX系列設(shè)備

? ? APDeviceIphoneSimulator,//iphone模擬器

? ? APDeviceIphoneOther//其他iphone系列設(shè)備

};

@interfaceKS_Tool :NSObject

//獲取手機(jī)設(shè)備型號

+ (APDeviceType)currentDeviceType;

@end

.m文件:

+ (APDeviceType)currentDeviceType

{

? ? structutsnamesystemInfo;

? ? uname(&systemInfo);

? ? NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];


? ? if([deviceString isEqualToString:@"iPhone3,1"])? ? returnAPDeviceIphone4;

? ? if([deviceString isEqualToString:@"iPhone3,2"])? ? returnAPDeviceIphone4;

? ? if([deviceString isEqualToString:@"iPhone3,3"])? ? returnAPDeviceIphone4;

? ? if([deviceString isEqualToString:@"iPhone4,1"])? ? returnAPDeviceIphone4;

? ? if([deviceString isEqualToString:@"iPhone5,1"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone5,2"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone5,3"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone5,4"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone6,1"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone6,2"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone7,1"])? ? returnAPDeviceIphonePlus;

? ? if([deviceString isEqualToString:@"iPhone7,2"])? ? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone8,1"])? ? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone8,2"])? ? returnAPDeviceIphonePlus;

? ? if([deviceString isEqualToString:@"iPhone8,4"])? ? returnAPDeviceIphone5;

? ? if([deviceString isEqualToString:@"iPhone9,1"])? ? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone9,2"])? ? returnAPDeviceIphonePlus;

? ? if([deviceString isEqualToString:@"iPhone9,3"])? ? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone9,4"])? ? returnAPDeviceIphonePlus;

? ? if([deviceString isEqualToString:@"iPhone10,1"])? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone10,4"])? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone10,2"])? returnAPDeviceIphonePlus;

? ? if([deviceString isEqualToString:@"iPhone10,5"])? returnAPDeviceIphone6;

? ? if([deviceString isEqualToString:@"iPhone10,3"])? returnAPDeviceIphoneX;

? ? if([deviceString isEqualToString:@"iPhone10,6"])? returnAPDeviceIphoneX;

? ? if([deviceString isEqualToString:@"x86_64"] || [deviceStringisEqualToString:@"i386"]) {

? ? ? ? if ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO) {

? ? ? ? ? ? return APDeviceIphone5;

? ? ? ? }else if ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO) {

? ? ? ? ? ? return APDeviceIphone6;

? ? ? ? }else if ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(1125, 2001), [[UIScreen mainScreen] currentMode].size)

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ||CGSizeEqualToSize(CGSizeMake(1242,2208), [[UIScreenmainScreen]currentMode].size)) :NO) {

? ? ? ? ? ? return APDeviceIphonePlus;

? ? ? ? }else if ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO) {

? ? ? ? ? ? return APDeviceIphoneX;

? ? ? ? }else{

? ? ? ? ? ? return APDeviceIphoneOther;

? ? ? ? }

? ? }

? ? return APDeviceIphoneOther;

}



通過deviceString變量聊替,還可以判斷出對應(yīng)的iPad設(shè)備,此處就不一一列舉了培廓。惹悄。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肩钠,一起剝皮案震驚了整個濱河市泣港,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌价匠,老刑警劉巖当纱,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異踩窖,居然都是意外死亡坡氯,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門洋腮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來箫柳,“玉大人,你說我怎么就攤上這事啥供≈褪保” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵滤灯,是天一觀的道長。 經(jīng)常有香客問我曼玩,道長鳞骤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任黍判,我火速辦了婚禮豫尽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘顷帖。我一直安慰自己美旧,他們只是感情好渤滞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著榴嗅,像睡著了一般妄呕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗽测,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天绪励,我揣著相機(jī)與錄音,去河邊找鬼唠粥。 笑死疏魏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的晤愧。 我是一名探鬼主播大莫,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼官份!你這毒婦竟也來了只厘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤贯吓,失蹤者是張志新(化名)和其女友劉穎懈凹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體悄谐,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡介评,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了爬舰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片们陆。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖情屹,靈堂內(nèi)的尸體忽然破棺而出坪仇,到底是詐尸還是另有隱情,我是刑警寧澤垃你,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布椅文,位于F島的核電站,受9級特大地震影響惜颇,放射性物質(zhì)發(fā)生泄漏皆刺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一凌摄、第九天 我趴在偏房一處隱蔽的房頂上張望羡蛾。 院中可真熱鬧,春花似錦锨亏、人聲如沸痴怨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浪藻。三九已至捐迫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間珠移,已是汗流浹背弓乙。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钧惧,地道東北人暇韧。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像浓瞪,于是被迫代替她去往敵國和親懈玻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容