当一个类的方法和实现过于臃肿时或想新增更多原有的类的方法,可以根据实际需求创建一个或多个category(分类)文件,其目的是方便管理和维护代码,为已有的类进行扩展方法。
创建category的方法:
Xcode中新建文件,选择Object-C file,file type选择category,Class选择要写那个类的分类,然后点击创建。
创建完成后显示以下语法样式:
@interface NSObject (test)
@end
category的局限:
1.category只可增加方法,不可新增属性,所有在分类中声明的p@property属性,不会自动生成实现。
2.在分类的实现中,不可访问本类的私有属性,但是可以通过geter和seter方法来进行操作。
3.当分类中出现和本类相同名称的方法时,有限调用本类的方法。当出现多个分类中都拥有相同的方法时,系统默认调用最后一个编译的分类中的方法。
category的使用场景
1.当1个类的方法很多,代码比较臃肿的时候,可以使用分类,将功能相似的方法写在同一个分类中,方便管理和维护。
2.为已经存在的类进行方法的扩展。
3.使用category分类时,需要#import 分类头文件。
category和继承的区别:
category没有新创建类, category中的方法依然是本类的对象调取使用。
继承是新创建一个子类,而且继承不仅可以新增自己的方法,还能新增属性。