Macro definition in many languages can see its shadow, C #, C++,c, and so on, especially the system API inside a lot of macro definition, looking very bluffing people. Reasonable use of macro definition, you can make your code look more standardized, more convenient, especially in certain places. Using a macro definition can also make your own code look tall with wood on it!
This article was changed from http://www.cnblogs.com/ios8/p/ios-hong.html
On-line macro definition of iOS more, I summed up some of the most commonly used macros, follow up will continue to fill up.
1. First start judgment:
#define First_launched @"Firstlaunch"
2.IOS7 System judgment:
#define ISIOS7 ([[[Uidevice Currentdevice] systemversion] floatvalue] >=7.0? Yes:no)
3. Determine if the retina screen, whether IPhone5, whether the ipad
#define Isretina ([UIScreen instancesrespondtoselector:
@selector (CurrentMode)]? Cgsizeequaltosize (Cgsizemake (640, 960),
[[UIScreen Mainscreen] currentmode].size): NO)
#define IPHONE5 ([UIScreen instancesrespondtoselector:
@selector (CurrentMode)]? Cgsizeequaltosize (Cgsizemake (640, 1136),
[[UIScreen Mainscreen] currentmode].size): NO)
#define ISPAD (ui_user_interface_idiom () = = Uiuserinterfaceidiompad)
4. Load Picture macro:
#define LoadImage (File,type) [UIImage imagewithcontentsoffile:[[nsbundle mainbundle]pathforresource:file OfType: Type]]
5.rgb Color conversion (16 binary->10)
#define UICOLORFROMRGB (rgbvalue) [Uicolor colorwithred: ((float) ((Rgbvalue & 0xFF0000) >>))/255.0 Green: (( float) ((Rgbvalue & 0xff00) >> 8)/255.0 Blue: ((float) (Rgbvalue & 0xFF))/255.0 alpha:1.0]
6. Set color RGB
#define COLOR (R, G, B, A)
[Uicolor colorwithred:r/255.0 green:g/255.0 blue:b/255.0 alpha:a]
7. Remove "-(ID) Performselector: (SEL) Aselector withobject: (ID) object;" The warning
#define SUPPRESSPERFORMSELECTORLEAKWARNING (Stuff) \
do {\
_pragma ("clang diagnostic push") \
_pragma ("clang diagnostic ignored \"-warc-performselector-leaks\ "") \
Stuff; \
_pragma ("clang diagnostic pop") \
} while (0)
8. Conversion of angle and radians during circular motion.
9.获取屏幕 宽度、高度
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)
//----------------------系统----------------------------
// 是否iPad
#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
// 是否iPad
#define someThing (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)? ipad: iphone
//获取系统版本
#define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]
#define CurrentSystemVersion [[UIDevice currentDevice] systemVersion]
//获取当前语言
#define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
//判断是否 Retina屏、设备是否%fhone 5、是否是iPad
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
//判断设备的操做系统是不是ios7
#define IOS7 ([[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0]
//判断当前设备是不是iphone5
#define kScreenIphone5 (([[UIScreen mainScreen] bounds].size.height)>=568)
//获取当前屏幕的高度
#define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height)
//获取当前屏幕的宽度
#define kMainScreenWidth ([UIScreen mainScreen].applicationFrame.size.width)
//定义一个define函数
#define TT_RELEASE_CF_SAFELY(__REF) { if (nil != (__REF)) { CFRelease(__REF); __REF = nil; } }
//判断是真机还是模拟器
#if TARGET_OS_IPHONE
//iPhone Device
#endif
#if TARGET_IPHONE_SIMULATOR
//iPhone Simulator
#endif
//检查系统版本
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
Macro on the tall define # define