#define LRWeakSelf(type) __weak typeof(type) weak##type = type;
如上面的這個宏,##是連接的作用, 即當使用上面的宏會把weak與輸入的type值連接起來如下圖:
LRWeakSelf(self);
weakself.view.backgroundColor = [UIColor whiteColor];
是用來連接上面的 weak和type, 所以拼接之后就直接成為了weakself
@#的使用, 我們添加一個普通的宏:
//隨便寫一個宏
#define LRToast(str) [NSString stringWithFormat:@"%@",str]
//這個宏需要這樣寫
LRToast(@"溫馨提示");
NSLog(@"%@",LRToast(@"溫馨提示"));
//隨便寫一個宏
#define LRToast(str) [NSString stringWithFormat:@"%@",@#str]
//這個宏需要這樣寫
LRToast(溫馨提示);
//正常運行, 打印不會報錯
NSLog(@"%@",LRToast(溫馨提示));
我們可以看出來 LRToast(溫馨提示);與LRToast(@"溫馨提示");區(qū)別, 也就是說@#可以代替@"" 那么我們以后開發(fā)就省事了, 不用再添加@""了!