美文网首页
iOS基础之类与类别

iOS基础之类与类别

作者: 田陌允 | 来源:发表于2020-10-12 17:53 被阅读0次

类 (Class)
类别 (Category)
作用:类别用于对一个已经存在的类添加方法(Methods)。你只需要知道这个类的公开接口,不需要知道类的源代码。需要注意的是,类别不能为已存在的类添加实例变量(Instance Variables),简单来说就是不包含实例变量扩展的类封装(个人理解),并与子类相比具有去耦合的效果。

类别的优点:
1.与子类相比,类别最主要的优点是:系统中已经存在的类可以不需修改就可使用类别的扩展功能。例如,假设系统中存在一个类A;另外一个类B中定义了一个类A类型的实例变量,并包含了类A的头文件“#import <A.h>"。假设一段时间后,需要对类A扩展几个新的方法。如果用子类,就需要创建一个子类A-1。如果类B想要使用类A的新方法,就要进行如下修改:1) 将包含的头文件改为"#import<A-1.h>"; 2)将所有用到的类A对象改为类A-1的对象。可以想象,如何有很多类需要用到类A的新功能(比如类A是iOS中的类UIViewController),随着系统的升级(iOS从1.0到5.0),你的程序需要不停地进行这种繁琐地修改。如果使用类别,即使类A升级了,系统中其它的类可以不需任何修改,直接就可以调用类A的新方法。
2.类别的第二大优点是实现了功能的局部化封装。类别定义可以放在一个已存在的类(类A)的定义文件中(.h)。这意味着这个类别只有在类A被引用的前提下才会被外部看到。如果另一个类(类B)不需要用到类A的功能(没有包含类A的.h文件),也就不会看到依附类A存在的类别。iOS SDK中广泛运用这种类别定义法来封装功能。
3.light-weight

类别的作用
1.将类的实现分散到多个不同文件或多个不同框架中
2.创建私有方法的前向引用
3.向对象添加非正式协议
4 通过类别我们可以为类簇这种不好创建子类的类来添加方法。

类别的基本语法:
@interface 类名(类别名)
//类别方法申明
@end

相关文章

  • iOS基础之类与类别

    类 (Class)类别 (Category)作用:类别用于对一个已经存在的类添加方法(Method...

  • IOS学习笔记之类别与扩展

    1. 类别 (1)为已有的类添加新的方法 (2)可以在类别中添加新属性,但是不能为类别添加新的实例变量。 (3)缺...

  • iOS知识点之类别

    类别(category) 当一个庞大的类有很多方法时,我们可以把方法分散到不同的模块中,来减少这个类的负担,而实现...

  • ios内存管理

    速查备忘 OC基础之类别(Category)和扩展(Extension): https://www.jianshu...

  • OC基础之类别(Category)和扩展(Extension)

    一、类别(Category) Ⅰ、类别文件的创建 1.新建文件2.选择iOS平台Source中的Object-C ...

  • 类别(Category)与类扩展 (Extension)的区别

    类别(Category)与类扩展 (Extension)的区别 iOS 类别和扩展(Categories和Exte...

  • 禅之类别有哪些

    禅之类别 禅为佛门修行主要方法,大小乘各宗,皆有专门禅法,外道邪师,亦各有建立,纷纭杂沓,鱼珠交错,故研究宗门禅法...

  • iOS开发基础:类别(Category)与类扩展 (Extens

    一、类别(Categroy) 再将类别之前,先介绍一下为什么要使用类别。在开发大型项目中,企业级开发中多人同时维护...

  • iOS中类别与扩展

    一、类别 类别就是类的扩展,在不改变类的结构的同时,可以像类中添加方法(不能添加成 员变量) 二...

  • iOS类别、扩展与继承

    类别Category 资料摘自:链接1链接2 类别是一种为现有的类添加新方法的方式。 利用Objective-C的...

网友评论

      本文标题:iOS基础之类与类别

      本文链接:https://www.haomeiwen.com/subject/roieuktx.html