iOS 获取iPhone机型和iOS系统版本号
在iOS开发中,有时需要获取用户设备的具体型号和当前的系统版本号。本文将介绍如何通过代码获取iPhone机型和iOS系统版本号,并提供相应的示例代码。
1. 获取iPhone机型
获取iPhone机型可以通过读取设备的模型标识符来实现。每个iPhone型号都有一个唯一的模型标识符,通过比对标识符和已知的型号对应关系,可以确定当前设备的具体型号。
iOS提供了UIDevice
类来获取关于设备的信息。通过调用[UIDevice currentDevice].model
方法,可以获取到设备的模型标识符。
示例代码如下:
#import <UIKit/UIKit.h>
NSString *getiPhoneModel() {
struct utsname systemInfo;
uname(&systemInfo);
NSString *model = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
return model;
}
int main(int argc, char * argv[]) {
@autoreleasepool {
NSString *model = getiPhoneModel();
NSLog(@"iPhone Model: %@", model);
}
return 0;
}
运行以上代码,可以在控制台输出当前设备的模型标识符。
为了方便使用,可以将模型标识符和对应的设备型号进行映射。下面是一份常见的iPhone型号对照表:
模型标识符 | 设备型号 |
---|---|
iPhone1,1 | iPhone 1G |
iPhone1,2 | iPhone 3G |
iPhone2,1 | iPhone 3GS |
iPhone3,1 | iPhone 4 |
iPhone3,2 | iPhone 4 |
iPhone3,3 | iPhone 4 (CDMA) |
iPhone4,1 | iPhone 4S |
iPhone5,1 | iPhone 5 (GSM) |
iPhone5,2 | iPhone 5 (Global) |
iPhone5,3 | iPhone 5c (GSM) |
iPhone5,4 | iPhone 5c (Global) |
iPhone6,1 | iPhone 5s (GSM) |
iPhone6,2 | iPhone 5s (Global) |
iPhone7,1 | iPhone 6 Plus |
iPhone7,2 | iPhone 6 |
iPhone8,1 | iPhone 6s |
iPhone8,2 | iPhone 6s Plus |
iPhone8,4 | iPhone SE |
iPhone9,1 | iPhone 7 (GSM) |
iPhone9,2 | iPhone 7 Plus (GSM) |
iPhone9,3 | iPhone 7 (Global) |
iPhone9,4 | iPhone 7 Plus (Global) |
iPhone10,1 | iPhone 8 (GSM) |
iPhone10,2 | iPhone 8 Plus (GSM) |
iPhone10,3 | iPhone X (GSM) |
iPhone10,4 | iPhone 8 (Global) |
iPhone10,5 | iPhone 8 Plus (Global) |
iPhone10,6 | iPhone X (Global) |
iPhone11,2 | iPhone XS |
iPhone11,4 | iPhone XS Max |
iPhone11,6 | iPhone XS Max (China) |
iPhone11,8 | iPhone XR |
iPhone12,1 | iPhone 11 |
iPhone12,3 | iPhone 11 Pro |
iPhone12,5 | iPhone 11 Pro Max |
可以使用一个字典来进行映射:
NSDictionary *iPhoneModels() {
return @{
@"iPhone1,1": @"iPhone 1G",
@"iPhone1,2": @"iPhone 3G",
@"iPhone2,1": @"iPhone 3GS",
// ...
@"iPhone12,5": @"iPhone 11 Pro Max"
};
}
NSString *getiPhoneModel() {
struct utsname systemInfo;
uname(&systemInfo);
NSString *model = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
NSDictionary *models = iPhoneModels();
return models[model] ?: model;
}
运行以上代码,可以在控制台输出当前设备的具体型号。
2. 获取iOS系统版本号
获取iOS系统版本号可以通过读取系统的版本号来实现。iOS提供了UIDevice
类的systemVersion
属性,可以直接获取到当前设备的系统版本号。
示例代码如下:
#import <UIKit/UIKit