使用过RAC的都知道RAC的宏是非常强大的,在这我给大家介绍一些重要的宏。
元宏(RAC中最基本一个宏,PS:那个yaun不知道对不对 _|| )
//用來把参数变成成一个字符串
metamacro_stringify(10);
点进去看,发现还是这个宏知识多了一个下划线metamacro_stringify_
再点击metamacro_stringify_看
发现RAC的宏基本都是宏包装宏
下来给大家举个例子来说明一下
- 创建两个宏
#define NUMBER 10
#define ADD(a,b) (a + b)
使用宏做一个打印
NSLog(@"%d + %d = %d", NUMBER, NUMBER, ADD(NUMBER, NUMBER));
结果
这个是没有问题的,接下来再看一个
- 写一个宏
//将A,10,B进行pinjie
#define CALCILATE(A,B) (A##10##B)
使用宏做一个打印
NSLog(@"%d",CALCILATE(NUMBER,NUMBER));
编译就报错
报错了,因为宏中使用到了宏所以报错了。
我们把上面的宏按照RAC中的改一下
#define CALCILATE(A,B) _CALCILATE(A,B)
#define _CALCILATE(A,B) (A##10##B)
结果
运行没有问题
这个就是RAC中宏的使用,其他的宏都是类似的。RAC的团队这样使用宏的灵感来自于这个网站,感兴趣的童鞋可以看一下:http://p99.gforge.inria.fr
-
还有在使用@weakify(self),@strongify(self)等类似宏时,block中的控件数量最好不要超过20的个原因,也是因为RAC中的宏定义