開發(fā)需求:當想打出方法名的字符串時酪刀,通常用@“frame”。自從學了宏之后钮孵,媽媽再也不用擔心我敲方法名沒有提示了骂倘。
我們一步一步學
- 首先我們定義一個方法
#define Funcname(objc,func) (objc.func)
在這說一下,由于xcode編譯器的原理巴席,每打一個字符就會對宏去匹配历涝。所以當輸入objc對象后,在輸入后面的func時會自動匹配方法∮猓可以嘗試在控制器.m文件中輸入__`Funcname(self,view)`__,后面打view時會自動補全堰塌。
- 把方法放出來
#define Funcname(objc,func) ((objc.func),func)
這是C語言逗號表達式的功能(注意:此方法會無法使用,這就要考下一步了)_(沒事多看看C語言吧)_
- 將方法轉(zhuǎn)換為c字符串
#define Funcname(objc,func) ((objc.func),#func)
對,就是在方法名前加一個#號,這樣就可以將方法名轉(zhuǎn)為c字符串了
- 將c字符串轉(zhuǎn)換為NSString類型
#define Funcname(objc,func) @(((objc.func),#func))
非常精彩,就是像這樣@('abc')
將c字符串轉(zhuǎn)為NSString
學習擴展:同理可以
試試將枚舉字名轉(zhuǎn)字符串?
吧