Last active
August 29, 2015 14:03
-
-
Save yume190/ee571c13c660f751bc51 to your computer and use it in GitHub Desktop.
Objetive-C useful Macro
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//source : http://blog.csdn.net/yiya1989/article/details/7849588 | |
#define myprintf(...) printk("[lch]:File:%s, Line:%d, Function:%s," \ | |
__VA_ARGS__, __FILE__, __LINE__ ,__FUNCTION__); | |
//source : http://stackoverflow.com/questions/969130/how-to-print-out-the-method-name-and-line-number-and-conditionally-disable-nslog | |
#ifdef DEBUG | |
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) | |
#else | |
# define DLog(...) | |
#endif | |
// ALog always displays output regardless of the DEBUG setting | |
#define ALog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__) | |
//The output (e.g. ALog(@"Hello world") ) will look like this: | |
//-[LibraryController awakeFromNib] [Line 364] Hello world | |
//source : https://gist.github.com/numo16/3407652 | |
#pragma mark - Shared Instance | |
#define ApplicationDelegate ((AppDelegate *)[[UIApplication sharedApplication] delegate]) | |
#define UserDefaults [NSUserDefaults standardUserDefaults] | |
#define NotificationCenter [NSNotificationCenter defaultCenter] | |
#define SharedApplication [UIApplication sharedApplication] | |
#define Bundle [NSBundle mainBundle] | |
#define MainScreen [UIScreen mainScreen] | |
#define ShowNetworkActivityIndicator() [UIApplication sharedApplication].networkActivityIndicatorVisible = YES | |
#define HideNetworkActivityIndicator() [UIApplication sharedApplication].networkActivityIndicatorVisible = NO | |
#define NetworkActivityIndicatorVisible(x) [UIApplication sharedApplication].networkActivityIndicatorVisible = x | |
#pragma mark - Nav, Tab Controller | |
#define NavBar self.navigationController.navigationBar | |
#define TabBar self.tabBarController.tabBar | |
#define NavBarHeight self.navigationController.navigationBar.bounds.size.height | |
#define TabBarHeight self.tabBarController.tabBar.bounds.size.height | |
#pragma mark - UI Tool | |
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width | |
#define ScreenHeight [[UIScreen mainScreen] bounds].size.height | |
#define TouchHeightDefault 44 | |
#define TouchHeightSmall 32 | |
#define ViewWidth(v) v.frame.size.width | |
#define ViewHeight(v) v.frame.size.height | |
#define ViewX(v) v.frame.origin.x | |
#define ViewY(v) v.frame.origin.y | |
#define SelfViewWidth self.view.bounds.size.width | |
#define SelfViewHeight self.view.bounds.size.height | |
#define RectX(f) f.origin.x | |
#define RectY(f) f.origin.y | |
#define RectWidth(f) f.size.width | |
#define RectHeight(f) f.size.height | |
#define RectSetWidth(f, w) CGRectMake(RectX(f), RectY(f), w, RectHeight(f)) | |
#define RectSetHeight(f, h) CGRectMake(RectX(f), RectY(f), RectWidth(f), h) | |
#define RectSetX(f, x) CGRectMake(x, RectY(f), RectWidth(f), RectHeight(f)) | |
#define RectSetY(f, y) CGRectMake(RectX(f), y, RectWidth(f), RectHeight(f)) | |
#define RectSetSize(f, w, h) CGRectMake(RectX(f), RectY(f), w, h) | |
#define RectSetOrigin(f, x, y) CGRectMake(x, y, RectWidth(f), RectHeight(f)) | |
#define DATE_COMPONENTS NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit | |
#define TIME_COMPONENTS NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit | |
#define FlushPool(p) [p drain]; p = [[NSAutoreleasePool alloc] init] | |
#pragma mark - Color Tool | |
#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1.0] | |
#define RGBA(r, g, b, a) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:a] | |
#define HEXCOLOR(c) [UIColor colorWithRed:((c>>16)&0xFF)/255.0 green:((c>>8)&0xFF)/255.0 blue:(c&0xFF)/255.0 alpha:1.0]; | |
// IOS Version check | |
// Source : http://stackoverflow.com/questions/7848766/how-can-we-programmatically-detect-which-ios-version-is-device-running-on | |
#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) | |
// Usage : | |
//if (SYSTEM_VERSION_LESS_THAN(@"5.0")) { | |
// // code here | |
//} | |
// | |
//if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) { | |
// // code here | |
//} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment