標籤:
有些時候,我們需要將代碼簡潔化,這樣便於讀代碼。我們可以將一些不變的東東抽取出來,將變化的東西作為參數。定義為宏,這樣在寫的時候就簡單多了。
下面例舉了一些常用的宏定義和大家分享:
1. 判斷裝置的作業系統是不是ios7
view sourceprint?
1.
#define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >=
7.0
] )
2. 判斷當前裝置是不是iPhone5
view sourceprint?
1.
#define kScreenIphone5 (([[UIScreen mainScreen] bounds].size.height)>=
568
)
3.擷取當前螢幕的高度
view sourceprint?
1.
#define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height)
4.擷取當前螢幕的寬度
view sourceprint?
1.
#define kMainScreenWidth ([UIScreen mainScreen].applicationFrame.size.width)
5.獲得RGB顏色
view sourceprint?
1.
#define SMSColor(r, g, b) [UIColor colorWithRed:(r)/
255.0
green:(g)/
255.0
blue:(b)/
255.0
alpha:
1.0
]
6..自訂Log
#ifdef DEBUG
#define SMSLog(...) NSLog(__VA_ARGS__)
#else
#define SMSLog(...)
#endif
7.單例
view sourceprint?
01.
// @interface
02.
#define singleton_interface(className)
03.
+ (className *)shared##className;
04.
05.
06.
// @implementation
07.
#define singleton_implementation(className)
08.
static
className *_instance;
09.
+ (id)allocWithZone:(struct _NSZone *)zone
10.
{
11.
static
dispatch_once_t onceToken;
12.
dispatch_once(&onceToken, ^{
13.
_instance = [
super
allocWithZone:zone];
14.
});
15.
return
_instance;
16.
}
17.
+ (className *)shared##className
18.
{
19.
static
dispatch_once_t onceToken;
20.
dispatch_once(&onceToken, ^{
21.
_instance = [[self alloc] init];
22.
});
23.
return
_instance;
24.
}
ios開發之常用宏的定義