masonry学习

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

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

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


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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容