11.5 、类别 Category

来源:互联网 发布:好看的小说知乎2017 编辑:程序博客网 时间:2024/05/17 03:21

1、类别 Category 

基本概念

封装是面向对象的一个特征,Objective-C也不例外。

有时我们会碰到这样一种情况,比如我们用第三方类库,随着程序功能的增加,需要在第三方库中的某个类中增加一个小小的方法,这时我们就不必在那个类中做修改或者定义一个子类,只需要在用到那个方法时添加一个该类的类别(category)即可

开源 静态库 .framework


1)在类别中定义的方法,会成为该类的一部分,与其他方法的调用没有区别

2)通过给父类定义类别方法,其子类也会继承这些方法。如果子类添加类别方法,父类则不会拥有子类的类别方法


应用

对现有类的功能进行扩展,比如:可以扩展Cocoa Touch框架中的类

声明私有方法,隐藏类的实现。也可称为延展Extension

对类中的方法归类:方便更新和维护


局限性

无法向类别中,添加新的实例变量,如果想增加实例变量则只能通过定义子类方式

类别中注意不要覆盖现有类的方法,类别中方法优先级高 


命名

类名+扩展功能名如:“NSString+Additions”


声明类别格式

@interface 类名(扩展功能名)

方法区

@end


两种写法

类别文件

在类中直接写


0 0
原创粉丝点击