1.Category简介
Category,又称为类别&类目&分类,是OC特有语法,在不修改原有类的基础上增加新的方法,一个庞大的类可以多人来分模块开发,有助于团队合作,或者对当前类方法做一个归类,以便于更好的更新和维护
2.Category的用法
命名规则:类名+扩展方法,比如给 Car增加一个run方法,那么命名为 (Car+run)
新建new file中选择Objective-C file 选择Category
在.h文件中,声明类别:
@interface 原有类类名 (分类名)
//不允许在类别中添加变量
//新增方法必须写在@interface 和 @end之间
新增方法声明
@end
在.h文件中或者.m文件中实现方法
@implementation 原有类类名 (分类名)
新增方法实现
//新增方法的实现与常规类的实现一样,必须写在@implementation 和 @end之间
//新增方法实现中可以调用原有类的成员变量
//新增方法与原有类方法重名,优先调用新增方法,因为原有类方法被覆盖了
//当有多个分类,且分类中的方法名重名时,调用的方法是最后参与编译的方法
@end
3.Extendsion简介
Extension是Category的一个特例 其名字为匿名(为空),并且新添加的方法一定要予以实现
(Category没有这个限制)
4.Extendsion的用法
新建new file中选择Objective-C file 选择Extendsion
@interface 原有类类名 ()
{
Extendsion是可以新增私有成员变量的
}
新增方法声明(这里声明的方法是私有方法)
@end
然后将声明的方法在原类的.m文件中实现