iOS開發-獲取設備名稱

隨便放的圖
隨便放的圖

問題描述

公司開發APP的時候,領導要求分析設備用戶量,即用iPhone5s的有多少,iPhone6s的有多少等等。這樣就需要在代碼中獲取設備的名稱

解決方案

從網上查找了些資料,基本上都是通過獲取到設備的產品類型來判斷設備名稱的。廢話不多說,直接上代碼了

導入頭文件 #include <sys/sysctl.h>
- (NSString *)getCurrentDeviceName
{
int mib[2];
size_t len;
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 = [NSString stringWithCString:machine encoding:NSASCIIStringEncoding];
    free(machine);

    if ([platform isEqualToString:@"iPhone5,1"]) return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,2"]) return @"iPhone 5";
    if ([platform isEqualToString:@"iPhone5,3"]) return @"iPhone 5c";
    if ([platform isEqualToString:@"iPhone5,4"]) return @"iPhone 5c";
    if ([platform isEqualToString:@"iPhone6,1"]) return @"iPhone 5s";
    if ([platform isEqualToString:@"iPhone6,2"]) return @"iPhone 5s";
    if ([platform isEqualToString:@"iPhone7,1"]) return @"iPhone 6 Plus";
    if ([platform isEqualToString:@"iPhone7,2"]) return @"iPhone 6";
    if ([platform isEqualToString:@"iPhone8,1"]) return @"iPhone 6s";
    if ([platform isEqualToString:@"iPhone8,2"]) return @"iPhone 6s Plus";

    if ([platform isEqualToString:@"i386"])      return @"iPhone Simulator";
    if ([platform isEqualToString:@"x86_64"])    return @"iPhone Simulator";
    return platform;
}

附錄

產品類型 設備名稱
iPhone1,2 iPhone 3G
iPhone2,1 iPhone 3GS
iPhone3,1 iPhone 4
iPhone3,2 iPhone 4
iPhone3,3 iPhone 4
iPhone4,1 iPhone 4s
iPhone5,1 iPhone 5
iPhone5,2 iPhone 5
iPhone5,3 iPhone 5c
iPhone5,4 iPhone 5c
iPhone6,1 iPhone 5s
iPhone6,2 iPhone 5s
iPhone7,1 iPhone 6 Plus
iPhone7,2 iPhone 6
iPhone8,1 iPhone 6s
iPhone8,2 iPhone 6s Plus
iPhone8,4 iPhone SE

注: iPhone 6/6Plus 和 iPhone 6s/6sPlus的產品類型要注意分別

更多產品類型對應的設備名稱請參考http://www.i4.cn/firmware.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 可能由于本身讀書不多的原因,第一次聽說王小波的名字是在一個微信公眾號關于王小波老師逝世多少周年的文章;文章給...
    藍莓之夜888閱讀 343評論 2 3
  • 聽蔣勛說紅樓,果真能靜心。林青霞的安眠藥不假。 綿綿的臺灣腔,男人變得文雅,女人變得可愛。 不止說紅樓,會...
    littlecolor閱讀 1,160評論 0 51
  • 和同齡人相比,我的中學時光有著許多的不同、許多的特別,“住校生”讓我和我的同學一起學習、一起生活;一起經歷著早鍛...
    依依ll閱讀 713評論 0 2
  • 【作者】蘇軾 【朝代】宋代 三月七日, 沙湖道中遇雨。 雨具先去, 同行皆狼狽, 余獨不覺。 已而遂晴, 故作此。...
    MachineLP閱讀 267評論 0 1