三種經常使用的辦法獲取iOS設備的型號:html
1. [UIDevice currentDevice].model (推薦);函數
2. uname(struct utsname *name) ,使用此函數須要#include ;htm
3.sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen) ,使用此函數須要#include ,#include; 推薦使用第一種方法,爲最上層的API,在項目開發中推薦使用高級的API ,由於其識別度高,更簡潔易用。二、3兩種都是BSD級別的API ,爲底層的API,不推薦。blog
示例: 1. NSString * strModel = [UIDevice currentDevice].model ;開發
2. struct utsname systemInfo get
uname(&systemInfo) string
NSString * strModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];it
3. size_t size coding
sysctlbyname ("hw.machine" , NULL , &size ,NULL ,0) model
char *model = (char *)malloc(size)
sysctlbyname ("hw.machine" , model , &size ,NULL ,0)
NSString * strModel = [NSString stringWithCString: model encoding:NSUTF8StringEncoding]; 獲取了設備型號以後,還不能準確的瞭解其設備類型,還須要找到與其型號對應的設備說明。 如iPad2,1對應的是 iPad2(WIFI)。 此對應表已有前人很好總結出來: http://www.cnblogs.com/shadox/archive/2013/02/05/2893017.html