category 是 OC 2.0后添加的新特性,主要作用是给已经存在的类添加方法,当然秉着类的单一职责原则和接口隔离原则我们通常会将不同功能的类扩展分别写在不同的文件中,这样不仅减少了单个文件的体积,同时可以对 category 进行按需加载。
category 的定义
所有的 OC 类和对象在 runtime 层其实都是 strcut,比如 objc_class、objc_object, 甚至 block(__block_impl) 还定义有自己的 isa 指针,category 也是如此。
1 | typedef struct category_t { |