标签:
1、Category简介
1.1 Category是对类的扩展,当你用到的类当初创建时的没预测到的功能时候,可以用来扩展你的类。
1.2 利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法,包括那些没有源代码的类(如某些框架类)。
2、Category的用途
2.1 在不创建继承类的情况下实现对已有类的扩展。
2.2 简化类的开发工作(当一个类需要多个程序员协同开发的时候,Category可以将同一个类根据用途分别放在不同的源文件中,从而便于程序员独立开发相应的方法集合)。
2.3 将常用的相关的方法分组。
2.4 在没有源代码的情况下可以用来修复BUG。
3、Category的用法
.h
@interface ClassName (CategoryName)
-methodName1
-methodName2
@end
.m
@implementation ClassName (CategoryName)
-methodName1
-methodName2
@end
4、PS
4.1 代码组织
Category用于大型类有效分解。通常一个大型类的方法可以根据某种逻辑或是相关性分解为不同的组,一个类的代码量越大,将这个类分解到不同的文件中就显得越有用,每个文件中分别是这个类的某些相关方法的集合。
当有多个开发者共同完成一个项目时,每个人所承担的是单独的cagegory的开发和维护。这样就版本控制就更加简单了,因为开发人员之间的工作冲突更少了。
4.2 Category和添加子类
并没有什么界限分明的判定标准来作为何时用Category何时用添加子类的方法的指导。但是有以下几个指导性的建议:
如果需要添加一个新的变量,则需添加子类。
如果只是添加一个新的方法,用Category是比较好的选择。
标签:
原文地址:http://www.cnblogs.com/hseries/p/5140807.html