为什么要有category
在大型项目,企业级开发中多人同时维护同一个类,此时程序员A因为某项需求只想给当前类currentClass添加一个方法newMethod,那该怎么办呢? 最简单粗暴的方式是把newMethod添加到currentClass中,然后直接实现该方法就OK了。 但考虑到OC是单继承的,子类可以拥有父类的方法和属性。 如果把newMethod写到currentClass中,那么currentClass的子类也会拥有newMethod。但真正的需求是只需要currentClass拥有newMethod,而currentClass的子类不会拥有。 苹果为了解决这个问题,就引入了分类(Category)的概念。
简单来说,为了使一个方法可以让父类使用,而继承于它的子类不能使用,我们有了category。
创建
一般我们在创建一个class的时候,会出现这个界面:
而创建一个category,就是选择Objective-C File
:
接着会出现:
对于Type
,我们选择Category
,
Class
&