[Code Note] Some functions used to judge the iphone, take note of the iphone
Code:
#import "RootViewController.h"
// To determine the model of the phone-(NSString *) deviceString add a header file
#import "sys / utsname.h"
@interface RootViewController ()
@end
@implementation RootViewController
-(id) initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil
{
self = [super initWithNibName: nibNameOrNil bundle: nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
-(void) viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
NSLog (@ "---- systemVersion ---% @", [self systemVersion]);
if ([self isIphone5]) {
NSLog (@ "---- is Iphone5 ---");
} else {
NSLog (@ "---- not a Iphone5 ---");
}
NSLog (@ "---- deviceString ---% @", [self deviceString]);
NSLog (@ "--- getDeviceModel ---% @-", [self getDeviceModel]);
}
#pragma -mark-System version judgment (that is, iOS7.0, iOS6.0 judgment) Output: 7.1
-(NSString *) systemVersion {
return [[UIDevice currentDevice] systemVersion];
}
#pragma -mark-judge whether the phone is iphone5 (that is, judge on iphon4, iphone5)
-(BOOL) isIphone5
{
if ([UIScreen instancesRespondToSelector: @selector (currentMode)]) {
return CGSizeEqualToSize (CGSizeMake (640, 1136), [[UIScreen mainScreen] currentMode] .size);
}
else
{
return NO;
}
}
#pragma -mark-determine the short version of the phone model
// Requires #import "sys / utsname.h"
-(NSString *) getDeviceModel {
struct utsname u;
uname (& u);
NSString * modelVersion = [NSString stringWithFormat: @ "% s", u.machine];
return modelVersion;
}
#pragma -mark-Determine the detailed version of the phone model
// Determine the model of the phone
// Requires #import "sys / utsname.h"
-(NSString *) deviceString
{
struct utsname systemInfo;
uname (& systemInfo);
NSString * deviceString = [NSString stringWithCString: systemInfo.machine encoding: NSUTF8StringEncoding];
if ([deviceString isEqualToString: @ "iPhone1,1"]) return @ "iPhone 1G";
if ([deviceString isEqualToString: @ "iPhone1,2"]) return @ "iPhone 3G";
if ([deviceString isEqualToString: @ "iPhone2,1"]) return @ "iPhone 3GS";
if ([deviceString isEqualToString: @ "iPhone3,1"]) return @ "iPhone 4";
if ([deviceString isEqualToString: @ "iPhone4,1"]) return @ "iPhone 4S";
if ([deviceString isEqualToString: @ "iPhone5,2"]) return @ "iPhone 5";
if ([deviceString isEqualToString: @ "iPhone3,2"]) return @ "Verizon iPhone 4";
if ([deviceString isEqualToString: @ "iPod1,1"]) return @ "iPod Touch 1G";
if ([deviceString isEqualToString: @ "iPod2,1"]) return @ "iPod Touch 2G";
if ([deviceString isEqualToString: @ "iPod3,1"]) return @ "iPod Touch 3G";
if ([deviceString isEqualToString: @ "iPod4,1"]) return @ "iPod Touch 4G";
if ([deviceString isEqualToString: @ "iPad1,1"]) return @ "iPad";
if ([deviceString isEqualToString: @ "iPad2,1"]) return @ "iPad 2 (WiFi)";
if ([deviceString isEqualToString: @ "iPad2,2"]) return @ "iPad 2 (GSM)";
if ([deviceString isEqualToString: @ "iPad2,3"]) return @ "iPad 2 (CDMA)";
if ([deviceString isEqualToString: @ "i386"]) return @ "Simulator";
if ([deviceString isEqualToString: @ "x86_64"]) return @ "Simulator";
NSLog (@ "NOTE: Unknown device type:% @", deviceString);
return deviceString;
}
-(void) didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
Output:
2015-10-15 14: 09: 05.486 Some functions for judging iphone phones [3478: 155689] ---- systemVersion --- 8.1
2015-10-15 14: 09: 05.487 Some functions for judging iphone phones [3478: 155689] ---- is Iphone5 ---
2015-10-15 14: 09: 05.487 Some functions for judging iphone phones [3478: 155689] ---- deviceString --- Simulator
2015-10-15 14: 09: 05.487 Some functions for judging iphone phones [3478: 155689] --- getDeviceModel --- x86_64--