masonry学习

2018-01-24  本文已影响11人  夺光

如果不加入MAS_SHORTHAND_GLOBALS 那么equalTo代表的是一个函数 这个函数还没有组装数据结构

如果加入了MAS_SHORTHAND_GLOBALS 那么equalTo就是一个宏 会调用mas_equalTo进行数据的包装 包装后就可以响应所有的数据类型

MASBoxValue包装宏会调用inline函数 inline函数里会判断是否为id类型 如果为id类型直接返回。

函数与宏名字重复,作用是在预编译阶段用宏来替换函数名,这种做法在预编译后替换为宏内容,这样就没有标识符冲突。

这样做的好处是可以在后期版本维护时,一直调用函数的名字,其实调用的是宏,由宏来替换实现。(有点像是method swizzing)。

上一篇下一篇

猜你喜欢

热点阅读