/* 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 #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