iOS如何獲取設(shè)備型號的最新方法總結(jié)
在開發(fā)中,我們經(jīng)常需要獲取設(shè)備的型號(如 iPhone X , iPhone 8 Plus 等)以進(jìn)行數(shù)據(jù)統(tǒng)計(jì),或者做不同的適配。但蘋果并沒有提供相應(yīng)的系統(tǒng) API 讓我們直接取得當(dāng)前設(shè)備的型號。
其中, UIDevice 有一個(gè)屬性 model 只是用于獲取 iOS 設(shè)備的類型,如 iPhone , iPod touch , iPad 等;而其另一個(gè)屬性 name 表示當(dāng)前設(shè)備的名稱,由用戶在設(shè)置》通用》關(guān)于》名稱中設(shè)定,如 My iPhone , xxx 的 iPhone 等。然而,我們無法根據(jù)這兩個(gè)值獲得具體的型號。
不過,每一種 iOS 設(shè)備型號都有對應(yīng)的一個(gè)或多個(gè)硬件編碼/標(biāo)識符,稱為 device model 或者叫 machine name ,之前的小集介紹過,我們可以通過如圖 1 中的代碼來獲取:

所以,通常的做法是,先獲取設(shè)備的 device model 值,再手動(dòng)映射為具體的設(shè)備型號(或者直接把 device model 值傳給后端,讓后端去做映射,這樣的好處是可以隨時(shí)兼容新設(shè)備)。
例如:去年發(fā)布的第一代 iPhone X 對應(yīng)的 device mode 為 iPhone10,3 和 iPhone10,6 ,而今年最新發(fā)布 iPhone XS 對應(yīng) iPhone11,2 ,iPhone XS Max 對應(yīng) iPhone11,4 和 iPhone11,6 ,iPhone XR 對應(yīng) iPhone11,8 ,完整的 device mode 數(shù)據(jù)參考 Wiki:
https://www.theiphonewiki.com/wiki/Models
綜上,我們可以先獲取 device model 值,記為 platform ,然后進(jìn)行對比判斷,轉(zhuǎn)換成具體的設(shè)備型號。實(shí)現(xiàn)代碼如圖 2、3 所示:


備注:圖中代碼只給了對 iPhone 設(shè)備型號的判斷,而完整的包括 iPad 和 iPod touch 型號我已經(jīng)放在 GitHub Gist 上,大家可以參考, 詳見這里 。
參考鏈接:
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
IOS開發(fā)之手勢響應(yīng)事件優(yōu)先級的實(shí)例詳解
這篇文章主要介紹了IOS開發(fā)之手勢響應(yīng)事件優(yōu)先級的實(shí)例詳解的相關(guān)資料,希望通過本文大家能夠掌握手勢響應(yīng)優(yōu)先級的使用方法,需要的朋友可以參考下2017-09-09
詳解iOS 關(guān)于字體根據(jù)不同屏幕尺寸等比適配的問題
這篇文章主要介紹了詳解iOS 關(guān)于字體根據(jù)不同屏幕尺寸等比適配的問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
iOS如何用100行代碼實(shí)現(xiàn)簡單的抽屜效果
最近在網(wǎng)上看到一些抽屜效果,看起來很酷!很眩!但是,下不下來看代碼, 所以決定還是自己寫吧!!這篇文章通過近100行的代碼就實(shí)現(xiàn)了簡單的抽屜效果,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10
NSURLSession跨域重定向透傳HTTP Header問題解決
這篇文章主要為大家介紹了NSURLSession跨域重定向透傳HTTP Header問題解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
IOS用AFN發(fā)送字符串形式的Json數(shù)據(jù)給服務(wù)器實(shí)例
本篇文章主要介紹了IOS用AFN發(fā)送字符串形式的Json數(shù)據(jù)給服務(wù)器實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
Swift中的HTTP請求體Request Bodies使用示例詳解
這篇文章主要為大家介紹了Swift中的HTTP請求體Request Bodies使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
IOS AFNetworking的Post失敗及requestSerializer的正確使用
這篇文章主要介紹了IOS AFNetworking的Post失敗及requestSerializer的正確使用的相關(guān)資料,需要的朋友可以參考下2017-05-05

