IOS中判断设备型号的宏定义
2015-07-14 14:01
267 查看
一、做成device的分类
h文件
#import
<UIKit/UIKit.h>
typedef
NS_ENUM(NSUInteger, FCDeviceType) {
DeviceUnknown = 0,
DeviceIsSimulator = 1,
DeviceIsiPhone = 2,
DeviceIsiPhone3G = 3,
DeviceIsiPhone3GS = 4,
DeviceIsiPhone4 = 5,
DeviceIsiPhone4S = 6,
DeviceIsiPhone5 = 7,
DeviceIsiPhone5C = 8,
DeviceIsiPhone5S = 9,
DeviceIsiPhone6 = 10,
DeviceIsiPhone6Plus = 11,
DeviceIsiPodTouch = 12,
DeviceIsiPodTouch2G = 13,
DeviceIsiPodTouch3G = 14,
DeviceIsiPodTouch4G = 15,
DeviceIsiPad = 16,
DeviceIsiPad2 = 17,
DeviceIsiPad3G = 18,
DeviceIsiPad4G = 19,
DeviceIsiPad5G_Air = 20,
DeviceIsiPadMini = 21,
DeviceIsiPadMini2G = 22
};
@interface
UIDevice (FC)
/**
* 判断设备型号
*
* @return 返回设备型号的枚举类型
*/
- (FCDeviceType)deviceType;
m文件
#pragma mark
从系统底层获取硬件平台类型字符串
- (NSString
*)platformString{
size_t
size;
sysctlbyname("hw.machine",NULL,
&size, NULL, 0);
char
*machine = (char*)malloc(size);
sysctlbyname("hw.machine", machine, &size,
NULL, 0);
NSString
*platform = [NSString
stringWithCString:machine
encoding:NSUTF8StringEncoding];
NSString
*PhoneDeviceStr = [NSString
string];
PhoneDeviceStr = [UIDevice
currentDevice].model;
free(machine);
return
platform;
}
#pragma mark
获取设备型号的枚举类型
- (FCDeviceType)deviceType{
NSString
*platform = [self
platformString];
FCDeviceType
deviceType;
//iPhone
if
([platform isEqualToString:@"iPhone1,2"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPhone2,1"])
return
DeviceIsiPhone3GS;
if
([platform isEqualToString:@"iPhone3,1"])
return
DeviceIsiPhone4;
if
([platform isEqualToString:@"iPhone3,2"])
return
DeviceIsiPhone4;
if
4000
([platform isEqualToString:@"iPhone3,3"])
return
DeviceIsiPhone4;
if
([platform isEqualToString:@"iPhone4,1"])
return
DeviceIsiPhone4S;
if
([platform isEqualToString:@"iPhone5,1"])
return
DeviceIsiPhone5;
if
([platform isEqualToString:@"iPhone5,2"])
return
DeviceIsiPhone5;
if
([platform isEqualToString:@"iPhone5,3"])
return
DeviceIsiPhone5C;
if
([platform isEqualToString:@"iPhone5,4"])
return
DeviceIsiPhone5C;
if
([platform isEqualToString:@"iPhone6,1"])
return
DeviceIsiPhone5S;
if
([platform isEqualToString:@"iPhone6,2"])
return
DeviceIsiPhone5S;
if
([platform isEqualToString:@"iPhone7,1"])
return
DeviceIsiPhone6;
if
([platform isEqualToString:@"iPhone7,2"])
return
DeviceIsiPhone6Plus;
//iPod Touch
if
([platform isEqualToString:@"iPod1,1"])
return
DeviceIsiPodTouch;
if
([platform isEqualToString:@"iPod2,1"])
return
DeviceIsiPodTouch2G;
if
([platform isEqualToString:@"iPod3,1"])
return
DeviceIsiPodTouch3G;
if
([platform isEqualToString:@"iPod4,1"])
return
DeviceIsiPodTouch4G;
//iPad
if
([platform isEqualToString:@"iPad1,1"])
return
DeviceIsiPad;
if
([platform isEqualToString:@"iPad2,1"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,2"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,3"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,4"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,5"])
return
DeviceIsiPadMini;
if
([platform isEqualToString:@"iPad2,6"])
return
DeviceIsiPadMini;
if
([platform isEqualToString:@"iPad2,7"])
return
DeviceIsiPadMini;
if
([platform isEqualToString:@"iPad3,1"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPad3,2"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPad3,3"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPad3,4"])
return
DeviceIsiPad4G;
if
([platform isEqualToString:@"iPad3,5"])
return
DeviceIsiPad4G;
if
([platform isEqualToString:@"iPad3,6"])
return
DeviceIsiPad4G;
if ([platform
isEqualToString:@"i386"] || [platform
isEqualToString:@"x86_64"])
return
DeviceIsSimulator;
return
deviceType;
}
二、宏定义
// 1.判断设备型号
#define kIphone4 [UIScreen mainScreen].bounds.size.height ==
480
#define kIphone4S [[UIDevice currentDevice] deviceType] ==
6
#define kIphone5 [UIScreen mainScreen].bounds.size.height ==
568
#define kIphone5s [[UIDevice currentDevice] deviceType] ==
9
#define kIphone6 [[UIDevice currentDevice] deviceType] ==
11
#define kIphone6Plus [[UIDevice currentDevice] deviceType] ==
10
三、使用方式
在用到地方输入判断设备型号的宏,如判断iPhone6,
if(kIphone6){
NSLog(@“this is iphone6”);
}
h文件
#import
<UIKit/UIKit.h>
typedef
NS_ENUM(NSUInteger, FCDeviceType) {
DeviceUnknown = 0,
DeviceIsSimulator = 1,
DeviceIsiPhone = 2,
DeviceIsiPhone3G = 3,
DeviceIsiPhone3GS = 4,
DeviceIsiPhone4 = 5,
DeviceIsiPhone4S = 6,
DeviceIsiPhone5 = 7,
DeviceIsiPhone5C = 8,
DeviceIsiPhone5S = 9,
DeviceIsiPhone6 = 10,
DeviceIsiPhone6Plus = 11,
DeviceIsiPodTouch = 12,
DeviceIsiPodTouch2G = 13,
DeviceIsiPodTouch3G = 14,
DeviceIsiPodTouch4G = 15,
DeviceIsiPad = 16,
DeviceIsiPad2 = 17,
DeviceIsiPad3G = 18,
DeviceIsiPad4G = 19,
DeviceIsiPad5G_Air = 20,
DeviceIsiPadMini = 21,
DeviceIsiPadMini2G = 22
};
@interface
UIDevice (FC)
/**
* 判断设备型号
*
* @return 返回设备型号的枚举类型
*/
- (FCDeviceType)deviceType;
m文件
#pragma mark
从系统底层获取硬件平台类型字符串
- (NSString
*)platformString{
size_t
size;
sysctlbyname("hw.machine",NULL,
&size, NULL, 0);
char
*machine = (char*)malloc(size);
sysctlbyname("hw.machine", machine, &size,
NULL, 0);
NSString
*platform = [NSString
stringWithCString:machine
encoding:NSUTF8StringEncoding];
NSString
*PhoneDeviceStr = [NSString
string];
PhoneDeviceStr = [UIDevice
currentDevice].model;
free(machine);
return
platform;
}
#pragma mark
获取设备型号的枚举类型
- (FCDeviceType)deviceType{
NSString
*platform = [self
platformString];
FCDeviceType
deviceType;
//iPhone
if
([platform isEqualToString:@"iPhone1,2"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPhone2,1"])
return
DeviceIsiPhone3GS;
if
([platform isEqualToString:@"iPhone3,1"])
return
DeviceIsiPhone4;
if
([platform isEqualToString:@"iPhone3,2"])
return
DeviceIsiPhone4;
if
4000
([platform isEqualToString:@"iPhone3,3"])
return
DeviceIsiPhone4;
if
([platform isEqualToString:@"iPhone4,1"])
return
DeviceIsiPhone4S;
if
([platform isEqualToString:@"iPhone5,1"])
return
DeviceIsiPhone5;
if
([platform isEqualToString:@"iPhone5,2"])
return
DeviceIsiPhone5;
if
([platform isEqualToString:@"iPhone5,3"])
return
DeviceIsiPhone5C;
if
([platform isEqualToString:@"iPhone5,4"])
return
DeviceIsiPhone5C;
if
([platform isEqualToString:@"iPhone6,1"])
return
DeviceIsiPhone5S;
if
([platform isEqualToString:@"iPhone6,2"])
return
DeviceIsiPhone5S;
if
([platform isEqualToString:@"iPhone7,1"])
return
DeviceIsiPhone6;
if
([platform isEqualToString:@"iPhone7,2"])
return
DeviceIsiPhone6Plus;
//iPod Touch
if
([platform isEqualToString:@"iPod1,1"])
return
DeviceIsiPodTouch;
if
([platform isEqualToString:@"iPod2,1"])
return
DeviceIsiPodTouch2G;
if
([platform isEqualToString:@"iPod3,1"])
return
DeviceIsiPodTouch3G;
if
([platform isEqualToString:@"iPod4,1"])
return
DeviceIsiPodTouch4G;
//iPad
if
([platform isEqualToString:@"iPad1,1"])
return
DeviceIsiPad;
if
([platform isEqualToString:@"iPad2,1"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,2"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,3"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,4"])
return
DeviceIsiPad2;
if
([platform isEqualToString:@"iPad2,5"])
return
DeviceIsiPadMini;
if
([platform isEqualToString:@"iPad2,6"])
return
DeviceIsiPadMini;
if
([platform isEqualToString:@"iPad2,7"])
return
DeviceIsiPadMini;
if
([platform isEqualToString:@"iPad3,1"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPad3,2"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPad3,3"])
return
DeviceIsiPad3G;
if
([platform isEqualToString:@"iPad3,4"])
return
DeviceIsiPad4G;
if
([platform isEqualToString:@"iPad3,5"])
return
DeviceIsiPad4G;
if
([platform isEqualToString:@"iPad3,6"])
return
DeviceIsiPad4G;
if ([platform
isEqualToString:@"i386"] || [platform
isEqualToString:@"x86_64"])
return
DeviceIsSimulator;
return
deviceType;
}
二、宏定义
// 1.判断设备型号
#define kIphone4 [UIScreen mainScreen].bounds.size.height ==
480
#define kIphone4S [[UIDevice currentDevice] deviceType] ==
6
#define kIphone5 [UIScreen mainScreen].bounds.size.height ==
568
#define kIphone5s [[UIDevice currentDevice] deviceType] ==
9
#define kIphone6 [[UIDevice currentDevice] deviceType] ==
11
#define kIphone6Plus [[UIDevice currentDevice] deviceType] ==
10
三、使用方式
在用到地方输入判断设备型号的宏,如判断iPhone6,
if(kIphone6){
NSLog(@“this is iphone6”);
}
相关文章推荐
- iOS正则表达式
- iOS正则表达式 分类: ios技术 2015-07-14 14:00 35人阅读 评论(0) 收藏
- iOS解决两个静态库的冲突 duplicate symbol
- IOS 开发 手势使用
- IOS 添加libMobileVLCKit .a到项目中编译问题
- phonegap(cordova) 入门 5----小知识点总结------------ios 选择默认语言
- iOS 的事件处理
- 个人常用iOS第三方库以及XCode插件介绍
- [转] iOS --- 自定义CoreData迁移
- 【iOS开发系列】KVC&KVO
- iOS——MVVM设计模式
- ios修改NavigationController的背景颜色
- 中文 iOS/Mac 开发博客列表
- 小胖说事27-----IOS制作自已的静态framework
- ios开发 向右滑动手势实现返回.在NavigationController中如何设置
- phonegap(cordova) 入门 9----小知识点总结--iOS 状态栏的字体颜色都设置为白色
- IOS中的ViewController 的loadView、viewDidLoad、viewDidUnload
- IOS-使用blend改变图片颜色
- IOS日期转为今天昨天形式
- 常用iOS第三方库以及XCode插件介绍