masonry学习

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

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

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


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

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

你可能感兴趣的:(masonry学习)