iOS 多快好省的宏

来源:互联网 发布:知豆线上销量 编辑:程序博客网 时间:2024/05/16 10:11
//  字符串:
002#ifndef nilToEmpty
003#define nilToEmpty(object) (object!=nil)?object:@""
004#endif
005 
006#ifndef formatStringOfObject
007#define formatStringOfObject(object) [NSString stringWithFormat:@"%@", object]
008#endif
009 
010#ifndef nilToEmptyFormatStringOfObject
011#define nilToEmptyFormatStringOfObject(object) formatStringOfObject(nilToEmpty(object))
012#endif
013 
014 
015 
016//  图片:
017#ifndef imagePath
018#define imagePath(imageName) [[NSBundle mainBundle] pathForResource:imageName ofType:@"png"]
019#endif
020 
021 
022//  颜色
023#define RGBA(r, g, b, a)                    [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]
024#define RGB(r, g, b)                        RGBA(r, g, b, 1.0f)
025#define HEXCOLOR(c)                         [UIColor colorWithRed:((c>>16)&0xFF)/255.0f green:((c>>8)&0xFF)/255.0f blue:(c&0xFF)/255.0f alpha:1.0f];
026 
027 
028//  debug
029#define debug(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
030 
031 
032//  iOS 支持
033#define SUPPORT_IPHONE_OS_VERSION(version) ( __IPHONE_OS_VERSION_MIN_REQUIRED <= version && __IPHONE_OS_VERSION_MAX_ALLOWED >= version)
034 
035 
036//  Application delegate
037#define ApplicationDelegate                 ((AppDelegate *)[[UIApplication sharedApplication] delegate])
038 
039 
040//  主要单例
041#define UserDefaults                        [NSUserDefaults standardUserDefaults]
042#define NotificationCenter                  [NSNotificationCenter defaultCenter]
043#define SharedApplication                   [UIApplication sharedApplication]
044 
045 
046#define Bundle                              [NSBundle mainBundle]
047 
048#define MainScreen                          [UIScreen mainScreen]
049 
050 
051//  网络指示
052#define ShowNetworkActivityIndicator()      [UIApplication sharedApplication].networkActivityIndicatorVisible = YES
053#define HideNetworkActivityIndicator()      [UIApplication sharedApplication].networkActivityIndicatorVisible = NO
054#define NetworkActivityIndicatorVisible(x)  [UIApplication sharedApplication].networkActivityIndicatorVisible = x
055 
056 
057//  主要控件
058#define NavBar                              self.navigationController.navigationBar
059#define TabBar                              self.tabBarController.tabBar
060 
061 
062//  大小尺寸
063#define ScreenWidth                         [[UIScreen mainScreen] bounds].size.width
064#define ScreenHeight                        [[UIScreen mainScreen] bounds].size.height
065 
066#define NavBarHeight                        self.navigationController.navigationBar.bounds.size.height
067#define TabBarHeight                        self.tabBarController.tabBar.bounds.size.height
068 
069 
070#define TouchHeightDefault                  44.0f
071#define TouchHeightSmall                    32.0f
072 
073 
074#define ViewWidth(v)                        v.frame.size.width
075#define ViewHeight(v)                       v.frame.size.height
076#define ViewX(v)                            v.frame.origin.x
077#define ViewY(v)                            v.frame.origin.y
078 
079 
080#define SelfViewWidth                       self.view.bounds.size.width
081#define SelfViewHeight                      self.view.bounds.size.height
082 
083 
084#define RectX(rect)                            rect.origin.x
085#define RectY(rect)                            rect.origin.y
086#define RectWidth(rect)                        rect.size.width
087#define RectHeight(rect)                       rect.size.height
088 
089 
090#define RectSetWidth(rect, w)                  CGRectMake(RectX(rect), RectY(rect), w, RectHeight(rect))
091#define RectSetHeight(rect, h)                 CGRectMake(RectX(rect), RectY(rect), RectWidth(rect), h)
092#define RectSetX(rect, x)                      CGRectMake(x, RectY(rect), RectWidth(rect), RectHeight(rect))
093#define RectSetY(rect, y)                      CGRectMake(RectX(rect), y, RectWidth(rect), RectHeight(rect))
094 
095 
096#define RectSetSize(rect, w, h)                CGRectMake(RectX(rect), RectY(rect), w, h)
097#define RectSetOrigin(rect, x, y)              CGRectMake(x, y, RectWidth(rect), RectHeight(rect))
098 
099 
100 
101//  内存管理
102#if ! __has_feature(objc_arc)
103    #define SBAutorelease(__v) ([__v autorelease]);
104    #define SBReturnAutoreleased SBAutorelease
105 
106    #define SBRetain(__v) ([__v retain]);
107    #define SBReturnRetained SBRetain
108 
109    #define SBRelease(__v) ([__v release]);
110 
111    #define SBDispatchQueueRelease(__v) (dispatch_release(__v));
112#else
113    // -fobjc-arc
114    #define SBAutorelease(__v)
115    #define SBReturnAutoreleased(__v) (__v)
116 
117    #define SBRetain(__v)
118    #define SBReturnRetained(__v) (__v)
119 
120    #define SBRelease(__v)
121 
122    #if TARGET_OS_IPHONE
123        // Compiling for iOS
124        #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
125            // iOS 6.0 or later
126            #define SBDispatchQueueRelease(__v)
127        #else
128            // iOS 5.X or earlier
129            #define SBDispatchQueueRelease(__v) (dispatch_release(__v));
130        #endif
131    #else
132        // Compiling for Mac OS X
133        #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
134            // Mac OS X 10.8 or later
135            #define SBDispatchQueueRelease(__v)
136        #else
137            // Mac OS X 10.7 or earlier
138            #define SBDispatchQueueRelease(__v) (dispatch_release(__v));
139        #endif
140    #endif
141#endif
原创粉丝点击