標籤:宏
以下內容只是拋磚引玉,希望大家多提意見,多改錯誤,太簡單的宏使用方法就不做解釋了,來點擴充的
//沒用#define前是這樣的,每個ViewController都要寫這麼一段重複的代碼 寫多了就煩了
/***********************處理前*****************************/
UILabel *titleLabel = [[UILabel alloc] init];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.textColor = [UIColor redColor];
titleLabel.text = @"導覽列標題";
titleLabel.font=[UIFont fontWithName:nil size:17.0f];
[titleLabel sizeToFit];
self.navigationItem.titleView = titleLabel;
//在全域設定檔(config.h)中定義了一個宏
#define SET_NAV_TITLE(_TITLE) ({\
UILabel *titleLabel = [[UILabel alloc] init];\
titleLabel.backgroundColor = [UIColor clearColor];\
titleLabel.textColor = [UIColor redColor];\
titleLabel.text = _TITLE;\
titleLabel.font=[UIFont fontWithName:nil size:17.0f];\
[titleLabel sizeToFit];\
self.navigationItem.titleView = titleLabel;\
})
//定義了宏後就這麼一句了
/***********************處理後*****************************/
SET_NAV_TITLE(@"導覽列標題");
//向大家請教個問題,怎麼向宏裡面傳一個執行個體對象進去,可不可以實現
最後給大家介紹一個好玩的,試調時很好用,把下面一段代碼複製到.pch中,你列印的時候就能看到效果了
//一個很進階的 NSLog
#define NSLog(format, ...) do { \
fprintf(stderr, "<%s : %d> %s\n", \
[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], \
__LINE__, __func__); \
(NSLog)((format), ##__VA_ARGS__); \
fprintf(stderr, "-------------------------------完美分割線---嘿嘿----------------------------\n"); \
} while (0)
IOS總結_#define宏定義在IOS開發中的具體使用