您的位置:首页 > 移动开发 > IOS开发

获取iOS设备的型号(iPhone4,iphone5,iPhone5s......)

2015-01-13 10:03 399 查看
  做自定义键盘,首先要适配所有的设备,所以在这里就要知道用户使用的是哪一款手机,下面总结了几种获取设备型号的方法;

  PS:这些也是我在网上自己找的,以防不时之需。

  方法一:

//***宏定义
/*[UIScreen instancesRespondToSelector:@selector(currentMode)];
判断UIScreen 类中是否包含currentMode这个方法,
若存在则调用CGSizeEqualToSize比较2个size大小是否相同,
若相同返回yes,否则返回no。
*/
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
然后:
if(iPhone5){
//***具体操作
}else{

//***具体操作

}


  方法二:

#define Screen_height   [[UIScreen mainScreen] bounds].size.height
#define Screen_width    [[UIScreen mainScreen] bounds].size.width


  方法三:

  PS:注意,需要#import "sys/utsname.h"

+ (NSString*)deviceString
{
// 需要#import "sys/utsname.h"
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;
}


+ (NSString*)deviceString
2 {
3     // 需要#import "sys/utsname.h"
4     struct utsname systemInfo;
5     uname(&systemInfo);
6     NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
7
8     if ([deviceString isEqualToString:@"iPhone1,1"])    return @"iPhone 1G";
9     if ([deviceString isEqualToString:@"iPhone1,2"])    return @"iPhone 3G";
10     if ([deviceString isEqualToString:@"iPhone2,1"])    return @"iPhone 3GS";
11     if ([deviceString isEqualToString:@"iPhone3,1"])    return @"iPhone 4";
12     if ([deviceString isEqualToString:@"iPhone4,1"])    return @"iPhone 4S";
13     if ([deviceString isEqualToString:@"iPhone5,2"])    return @"iPhone 5";
14     if ([deviceString isEqualToString:@"iPhone3,2"])    return @"Verizon iPhone 4";
15     if ([deviceString isEqualToString:@"iPod1,1"])      return @"iPod Touch 1G";
16     if ([deviceString isEqualToString:@"iPod2,1"])      return @"iPod Touch 2G";
17     if ([deviceString isEqualToString:@"iPod3,1"])      return @"iPod Touch 3G";
18     if ([deviceString isEqualToString:@"iPod4,1"])      return @"iPod Touch 4G";
19     if ([deviceString isEqualToString:@"iPad1,1"])      return @"iPad";
20     if ([deviceString isEqualToString:@"iPad2,1"])      return @"iPad 2 (WiFi)";
21     if ([deviceString isEqualToString:@"iPad2,2"])      return @"iPad 2 (GSM)";
22     if ([deviceString isEqualToString:@"iPad2,3"])      return @"iPad 2 (CDMA)";
23     if ([deviceString isEqualToString:@"i386"])         return @"Simulator";
24     if ([deviceString isEqualToString:@"x86_64"])       return @"Simulator";
25     NSLog(@"NOTE: Unknown device type: %@", deviceString);
26     return deviceString;
27 }


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: