开发需求:当想打出方法名的字符串时,通常用@“frame”。自从学了宏之后,妈妈再也不用担心我敲方法名没有提示了。
我们一步一步学
- 首先我们定义一个方法
#define Funcname(objc,func) (objc.func)
在这说一下,由于xcode编译器的原理,每打一个字符就会对宏去匹配。所以当输入objc对象后,在输入后面的func时会自动匹配方法。可以尝试在控制器.m文件中输入__`Funcname(self,view)`__,后面打view时会自动补全。
- 把方法放出来
#define Funcname(objc,func) ((objc.func),func)
这是C语言逗号表达式的功能(注意:此方法会无法使用,这就要考下一步了)_(没事多看看C语言吧)_
- 将方法转换为c字符串
#define Funcname(objc,func) ((objc.func),#func)
对,就是在方法名前加一个#号,这样就可以将方法名转为c字符串了
- 将c字符串转换为NSString类型
#define Funcname(objc,func) @(((objc.func),#func))
非常精彩,就是像这样@('abc')
将c字符串转为NSString
学习扩展:同理可以
试试将枚举字名转字符串?
吧