標籤:
有些時候,我們需要將代碼簡潔化,這樣便於讀代碼。我們可以將一些不變的東東抽取出來,將變化的東西作為參數。定義為宏,這樣在寫的時候就簡單多了。
下面例舉了一些常用的宏定義和大家分享:
1. 判斷裝置的作業系統是不是ios7
1.#define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] )
2. 判斷當前裝置是不是iPhone5
1.#define kScreenIphone5 (([[UIScreen mainScreen] bounds].size.height)>=568)
3.擷取當前螢幕的高度
1.#define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height)
4.擷取當前螢幕的寬度
1.#define kMainScreenWidth ([UIScreen mainScreen].applicationFrame.size.width)
5.獲得RGB顏色
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.單例
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開發——常用宏的定義