iOS開發(fā)之純代碼獲取iOS設(shè)備型號(hào)類方法

在進(jìn)行iOS開發(fā)的過程中,我們有時(shí)需要對(duì)設(shè)備的類型進(jìn)行判別(比如發(fā)微博時(shí)顯示來自哪個(gè)客戶端,就是通過獲取設(shè)備的型號(hào)然后顯示給用戶看)以下就介紹獲取設(shè)備的方法。

我們可以通過代碼直接把方法寫在所需的類中,然后在類中調(diào)用此方法,但寫重復(fù)的代碼對(duì)于程序員來說是很不建議去做的事兒,因?yàn)檫@無疑是在做無用功,我們可以把它寫在一個(gè)類中封裝起來,這樣在別的類中就可以隨時(shí)調(diào)用。

參考:https://www.theiphonewiki.com/wiki/Models,這個(gè)是蘋果官方的設(shè)備類型說明,可以參考一下

1】首先我們先建一個(gè)New File,命名為GetDeviceModelMethod

【2】在GetDeviceModelMethod.h文件中聲明這個(gè)方法(用于外部調(diào)用),具體代碼如下:

#import

@interfaceGetDeviceModelMethod :UIViewController

+ (NSString*)GetCurrentDeviceModel;

@end

【3】然后我們?cè)僭?GetDeviceModelMethod.m 文件中實(shí)現(xiàn)GetCurrentDeviceModel方法,(記得#include)具體代碼如下:

#import"GetDeviceModelMethod.h"

#include

@interfaceGetDeviceModelMethod()

@end

@implementationGetDeviceModelMethod

//獲得設(shè)備型號(hào)

+ (NSString*)GetCurrentDeviceModel

{

intmib[2];

size_tlen;

char*machine;

mib[0] =CTL_HW;

mib[1] =HW_MACHINE;

sysctl(mib,2,NULL, &len,NULL,0);

machine =malloc(len);

sysctl(mib,2, machine, &len,NULL,0);

NSString*platform = [NSStringstringWithCString:machineencoding:NSASCIIStringEncoding];

free(machine);

//iPhone

if([platformisEqualToString:@"iPhone1,1"])return@"iPhone 2G (A1203)";

if([platformisEqualToString:@"iPhone1,2"])return@"iPhone 3G (A1241/A1324)";

if([platformisEqualToString:@"iPhone2,1"])return@"iPhone 3GS (A1303/A1325)";

if([platformisEqualToString:@"iPhone3,1"])return@"iPhone 4 (A1332)";

if([platformisEqualToString:@"iPhone3,2"])return@"iPhone 4 (A1332)";

if([platformisEqualToString:@"iPhone3,3"])return@"iPhone 4 (A1349)";

if([platformisEqualToString:@"iPhone4,1"])return@"iPhone 4S (A1387/A1431)";

if([platformisEqualToString:@"iPhone5,1"])return@"iPhone 5 (A1428)";

if([platformisEqualToString:@"iPhone5,2"])return@"iPhone 5 (A1429/A1442)";

if([platformisEqualToString:@"iPhone5,3"])return@"iPhone 5c (A1456/A1532)";

if([platformisEqualToString:@"iPhone5,4"])return@"iPhone 5c (A1507/A1516/A1526/A1529)";

if([platformisEqualToString:@"iPhone6,1"])return@"iPhone 5s (A1453/A1533)";

if([platformisEqualToString:@"iPhone6,2"])return@"iPhone 5s (A1457/A1518/A1528/A1530)";

if([platformisEqualToString:@"iPhone7,2"])return@"iPhone 6 (A1549/A1586)";

if([platformisEqualToString:@"iPhone7,1"])return@"iPhone 6 Plus (A1522/A1524)";

if([platformisEqualToString:@"iPhone8,1"])return@"iPhone 6s (A1633/A1688/A1691/A1700)";

if([platformisEqualToString:@"iPhone8,2"])return@"iPhone 6s Plus (A1634/A1687/A1690/A1699)";

//iPod Touch

if([platformisEqualToString:@"iPod1,1"])return@"iPod Touch (A1213)";

if([platformisEqualToString:@"iPod2,1"])return@"iPod Touch 2G (A1288)";

if([platformisEqualToString:@"iPod3,1"])return@"iPod Touch 3G (A1318)";

if([platformisEqualToString:@"iPod4,1"])return@"iPod Touch 4G (A1367)";

if([platformisEqualToString:@"iPod5,1"])return@"iPod Touch 5G (A1421/A1509)";

if([platformisEqualToString:@"iPod7,1"])return@"iPod Touch 6G (A1574)";

//iPad

if([platformisEqualToString:@"iPad1,1"])return@"iPad (A1219/A1337)";

if([platformisEqualToString:@"iPad2,1"])return@"iPad 2 (A1395)";

if([platformisEqualToString:@"iPad2,2"])return@"iPad 2 (A1396)";

if([platformisEqualToString:@"iPad2,3"])return@"iPad 2 (A1397)";

if([platformisEqualToString:@"iPad2,4"])return@"iPad 2 (A1395+New Chip)";

if([platformisEqualToString:@"iPad3,1"])return@"iPad 3 (A1416)";

if([platformisEqualToString:@"iPad3,2"])return@"iPad 3 (A1403)";

if([platformisEqualToString:@"iPad3,3"])return@"iPad 3 (A1430)";

if([platformisEqualToString:@"iPad3,4"])return@"iPad 4 (A1458)";

if([platformisEqualToString:@"iPad3,5"])return@"iPad 4 (A1459)";

if([platformisEqualToString:@"iPad3,6"])return@"iPad 4 (A1460)";

//iPad Air

if([platformisEqualToString:@"iPad4,1"])return@"iPad Air (A1474)";

if([platformisEqualToString:@"iPad4,2"])return@"iPad Air (A1475)";

if([platformisEqualToString:@"iPad4,3"])return@"iPad Air (A1476)";

if([platformisEqualToString:@"iPad5,3"])return@"iPad Air 2 (A1566)";

if([platformisEqualToString:@"iPad5,4"])return@"iPad Air 2 (A1567)";

//iPad mini

if([platformisEqualToString:@"iPad2,5"])return@"iPad mini 1G (A1432)";

if([platformisEqualToString:@"iPad2,6"])return@"iPad mini 1G (A1454)";

if([platformisEqualToString:@"iPad2,7"])return@"iPad mini 1G (A1455)";

if([platformisEqualToString:@"iPad4,4"])return@"iPad mini 2 (A1489)";

if([platformisEqualToString:@"iPad4,5"])return@"iPad mini 2 (A1490)";

if([platformisEqualToString:@"iPad4,6"])return@"iPad mini 2 (A1491)";

if([platformisEqualToString:@"iPad4,7"])return@"iPad mini 3 (A1599)";

if([platformisEqualToString:@"iPad4,8"])return@"iPad mini 3 (A1600)";

if([platformisEqualToString:@"iPad4,9"])return@"iPad mini 3 (A1601)";

if([platformisEqualToString:@"iPad5,1"])return@"iPad mini 4 (A1538)";

if([platformisEqualToString:@"iPad5,2"])return@"iPad mini 4 (A1550)";

if([platformisEqualToString:@"i386"])return@"iPhone Simulator";

if([platformisEqualToString:@"x86_64"])return@"iPhone Simulator";

returnplatform;

}

@end

【4】這樣我們就可以在別的類里調(diào)用該方法了,具體使用方法如下:

導(dǎo)入頭文件#import"GetDeviceModelMethod.h"

NSString*CurrentDeviceModel=[GetDeviceModelMethodGetCurrentDeviceModel];

NSLog(@"設(shè)備類型=%@",CurrentDeviceModel);//在窗口打印設(shè)備類型

如有不當(dāng)之處,歡迎批評(píng)補(bǔ)充!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容