周知,类别Category是Object-c里最灵活的东西之一(个人认为哈)。他能动态的给一个类添加一些方法或者姑且叫做属性的东西。
那么Category的原理是什么呢,自己去科普下。原来是Category在定义的时候就注册进了一个hash集,这里面存了要扩展的类,以及方法,属性什么的。当这个类在编译的时候,通过runtime会去加载Category入驻的那个hash集,并把这些方法什么的,属性什么的,注入进这个类里。
而我们在类里引入这个Category只是为了通过编译,其实这个类已经被Category实现了某些方法。