UIDevice-Utils/Pod/Classes/UIDevice-Hardware.h
2016-09-12 13:08:33 +02:00

125 lines
3.8 KiB
Objective-C
Executable File

/*
Erica Sadun, http://ericasadun.com
iPhone Developer's Cookbook, 6.x Edition
BSD License, Use at your own risk
Modified by Eric Horacek for Monospace Ltd. on 2/4/13
*/
#import <UIKit/UIKit.h>
#define IS_IPAD (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
#define DEVICE_IOS_VERSION [[UIDevice currentDevice].systemVersion floatValue]
#define DEVICE_HAS_RETINA_DISPLAY (fabs([UIScreen mainScreen].scale - 2.0) <= fabs([UIScreen mainScreen].scale - 2.0)*DBL_EPSILON)
#define IS_IOS7_OR_LATER (((double)(DEVICE_IOS_VERSION)-7.0) > -((double)(DEVICE_IOS_VERSION)-7.0)*DBL_EPSILON)
#define NSStringAdd568hIfIphone4inch(str) [NSString stringWithFormat:[UIDevice currentDevice].isIphoneWith4inchDisplay ? @"%@-568h" : @"%@", str]
#define IS_IPHONE_5 [[UIScreen mainScreen] applicationFrame].size.height == 568
typedef NS_ENUM(NSUInteger, UIDeviceFamily) {
UIDeviceFamilyiPhone,
UIDeviceFamilyiPod,
UIDeviceFamilyiPad,
UIDeviceFamilyAppleTV,
UIDeviceFamilyUnknown,
};
typedef NS_ENUM(NSUInteger, UIDeviceGenerationModel) {
UIDeviceGenerationModeliPhone3G,
UIDeviceGenerationModeliPhone3GS,
UIDeviceGenerationModeliPhone4,
UIDeviceGenerationModeliPhone4S,
UIDeviceGenerationModeliPhone5,
UIDeviceGenerationModeliPhone5C,
UIDeviceGenerationModeliPhone5S,
UIDeviceGenerationModeliPhone6,
UIDeviceGenerationModeliPhone6Plus,
UIDeviceGenerationModeliPhone6S,
UIDeviceGenerationModeliPhone6SPlus,
UIDeviceGenerationModeliPhoneSimulator,
UIDeviceGenerationModeliPad1,
UIDeviceGenerationModeliPad2,
UIDeviceGenerationModeliPad3,
UIDeviceGenerationModeliPad4,
UIDeviceGenerationModeliPadAir,
UIDeviceGenerationModeliPadAir2,
UIDeviceGenerationModeliPadMini1,
UIDeviceGenerationModeliPadMini2,
UIDeviceGenerationModeliPadMini3,
UIDeviceGenerationModeliPadMini4,
UIDeviceGenerationModeliPadPro,
UIDeviceGenerationModeliPadSimulator,
UIDeviceGenerationModeliPod1,
UIDeviceGenerationModeliPod2,
UIDeviceGenerationModeliPod3,
UIDeviceGenerationModeliPod4,
UIDeviceGenerationModeliPod5,
UIDeviceGenerationModeliPod6,
UIDeviceGenerationModelAppleTV1,
UIDeviceGenerationModelAppleTV2,
UIDeviceGenerationModelAppleTV3,
UIDeviceGenerationModelAppleTV3_v2,
UIDeviceGenerationModelAppleTV4,
UIDeviceGenerationModelUnknown
};
typedef NS_ENUM(NSUInteger, UIDeviceModelInches) {
UIDeviceModelInches35,
UIDeviceModelInches4,
UIDeviceModelInches47,
UIDeviceModelInches55,
UIDeviceModelInches79,
UIDeviceModelInches97,
UIDeviceModelInches129,
UIDeviceSimulatorModelInches35 = UIDeviceModelInches35,
UIDeviceSimulatorModelInches4 = UIDeviceModelInches4,
UIDeviceSimulatorModelInches47 = UIDeviceModelInches47,
UIDeviceSimulatorModelInches55 = UIDeviceModelInches55,
UIDeviceSimulatorModelInches79 = UIDeviceModelInches79,
UIDeviceSimulatorModelInches97 = UIDeviceModelInches97,
UIDeviceSimulatorModelInches129 = UIDeviceModelInches129,
UIDeviceModelInchesUnKnown
};
@interface UIDevice (Hardware)
/**
Returns a machine-readable model name in the format of "iPhone4,1"
*/
- (NSString *)modelIdentifier;
/**
Returns a human-readable model name in the format of "iPhone 4S". Fallback of the the `modelIdentifier` value.
*/
- (NSString *)modelName;
/**
Returns the device generation model as a `UIDeviceGenerationModel`
*/
- (UIDeviceGenerationModel) deviceGenerationModel;
/**
Returns the device generation model as a NSString `iPhone4`
*/
- (NSString*) deviceGenerationModelString;
/**
Returns the device family as a `UIDeviceFamily`
*/
- (UIDeviceFamily)deviceFamily;
/**
Returns the device Inches
*/
- (UIDeviceModelInches) deviceInches;
/**
Returns the device OS Version in CGFloat
*/
- (CGFloat) osVersion;
@end