// 字符串: |
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 |