Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import <sys/utsname.h>
- typedef NS_ENUM(NSUInteger, AADeviceModel) {
- AADeviceModelUnknown,
- AADeviceModeliPhone4S,
- AADeviceModeliPodTouch5 = AADeviceModeliPhone4S,
- AADeviceModeliPad2 = AADeviceModeliPhone4S,
- AADeviceModeliPadMini = AADeviceModeliPad2,
- AADeviceModeliPad3,
- AADeviceModeliPhone5,
- AADeviceModeliPhone5c = AADeviceModeliPhone5,
- AADeviceModeliPad4,
- AADeviceModeliPhone5s,
- AADeviceModeliPadAir = AADeviceModeliPhone5s,
- AADeviceModeliPadMini2 = AADeviceModeliPadAir,
- AADeviceModeliPadMini3 = AADeviceModeliPadMini2,
- AADeviceModeliPhone6,
- AADeviceModeliPhone6Plus = AADeviceModeliPhone6,
- AADeviceModeliPadMini4 = AADeviceModeliPhone6,
- AADeviceModeliPadAir2,
- AADeviceModeliPhone6s,
- AADeviceModeliPhone6sPlus = AADeviceModeliPhone6,
- AADeviceModeliPadPro,
- }
- - (AADeviceModel)currentDeviceModel
- {
- NSError *error = nil;
- NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(iPod|iPhone|iPad)(\\d+),\\d+"
- options:0
- error:&error];
- if (error) {
- return AADeviceModelUnknown;
- }
- struct utsname systemInfo;
- uname(&systemInfo);
- NSString *deviceName = [NSString stringWithCString:systemInfo.machine
- encoding:NSUTF8StringEncoding];
- NSArray<NSTextCheckingResult *> *matches = [regex matchesInString:deviceName
- options:NSMatchingProgress
- range:NSMakeRange(0, deviceName.length)];
- for (NSTextCheckingResult *match in matches) {
- if (match.numberOfRanges < 3) {
- continue;
- }
- NSRange deviceTypeRange = [match rangeAtIndex:1];
- NSString *deviceType = [deviceName substringWithRange:deviceTypeRange];
- NSRange deviceGenRange = [match rangeAtIndex:2];
- NSInteger deviceGeneration = [[deviceName substringWithRange:deviceGenRange] integerValue];
- if ([deviceType isEqualToString:@"iPod"]) {
- if (deviceGeneration <= 5) {
- return AADeviceModeliPodTouch5;
- }
- return AADeviceModeliPodTouch6;
- } else if ([deviceType isEqualToString:@"iPhone"]) {
- if (deviceGeneration <= 4) {
- return AADeviceModeliPhone4S;
- } else if (deviceGeneration == 5) {
- return AADeviceModeliPhone5;
- } else if (deviceGeneration == 6) {
- return AADeviceModeliPhone6;
- }
- return AADeviceModeliPhone6s;
- } else if ([deviceType isEqualToString:@"iPad"]) {
- if (deviceGeneration <= 2) {
- return AADeviceModeliPad2;
- } else if (deviceGeneration == 3) {
- return AADeviceModeliPad3;
- } else if (deviceGeneration == 4) {
- return AADeviceModeliPad4;
- } else if (deviceGeneration == 5) {
- return AADeviceModeliPadAir;
- } else if (deviceGeneration == 6) {
- return AADeviceModeliPadAir2;
- }
- return AADeviceModeliPadPro;
- }
- }
- return AADeviceModelUnknown;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement