您的位置:首页 > 移动开发 > IOS开发

iOS 多快好省的宏

2013-12-24 16:06 218 查看
//
字符串:
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
NavBarHeightself.navigationController.navigationBar.bounds.size.height
067
#define
TabBarHeightself.tabBarController.tabBar.bounds.size.height
068
069
070
#define
TouchHeightDefault  44.0f
071
#define
TouchHeightSmall32.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: