类别是个很伟大的概念。使用类别可以为任何一个类添加新方法,包括那些你没有源代码的方法。 这非常方便。 想要为某个类添加新方法时,我们通常的做法是创建子类。 但有时,子类不方便。你可能不能创建一个子类的对象。你可能使用的是框架和工具包,因此 无法处理新类的对象。 类别的声明: @interface UIImage (ImageTransform) -(UIimage *)transformToSize:(NSSize *)size @end 现有的类位于@interface关键字之后,其后是位于圆括号中的一个新名称。 类的名称可是任意,这个名称大概没有什么实际作用吧,仅仅是一个标示符。当然具有实际意义 的标示符可以指明该类别的作用。
类别的局限性 1 无法向类中添加实例变量 2 名称冲突,类别中方法的名称与现有类中的方法的名称发生冲突时,类别中的方法具有更高的 优先权。一般在类别中加一个前缀防止名称冲突。
类别的作用 1 将类别的实现分散到多个不同文件或多个不同框架中。 2 创建对私有方法的前向引用。(这种情况类别名称通常为空或者PrivateMethods) 3 向对象添加非正式协议。
|
请发表评论