category的作用
将类的实现分散到多个不同文件或多个不同框架中,并且给类添加新的方法
这个很好理解,但要注意的是当两个类别同时实现一个同名的方法时编译器不知道会调用那个,导致错误出现,好处就是可以把一个类的实现分散,有助于多人开发,减少一个类代码臃肿创建对私有方法的前向引用
就是一个类的私有方法我们是不可以访问的,但是如果用类别添加一个引用,这样我们就可以访问他的私有方法向对象添加非正式协议
需要注意
在category中,不提倡对原有方法进行重载。原因非常简单,在category中进行重载,无法对原方法进行访问,而继承中可以使用super。
虽然category可以访问类的实例变量,去不能创建新的实例变量,如果要创新的实例变量,请使用继承
一个类可以定义多个category,但是如果不同category中存在相同方法,编译器无法决定使用哪个category
category是可以被继承的。在某个父类中定义了category,那么他所有的子类都具有该category
在需要为某个类创建私有成员方法时,也用category的方式来实现
在定义category时,我们可以仅仅给出方法定义,而不需要给出具体的实现