category:在我看到的各种资料中,通常有3中翻译:类目、分类、类别。其实都是一个意思,表示对一个类的扩充。

category使用的优点:

可以随时给类添加方法,这种添加不需要去创建子类的,而且添加的方法可以被子类继承。

使用category可以很好的将类中的方法进行分类管理。

category的缺点:

只能添加方法,不能添加实例变量。

如果对原有类中方法覆盖,会引起super消息的断裂,所以,在category中一般不要覆盖原有方法。

在我的开发过程中,对于category的使用场景多是对于代码优化的需求,方便代码的管理。在多人合作的开发中,如若需要给别人写的类中添加一些方法,而又不想去动别人写的代码,这个时候,category就是一个最好的选择了。还有一种情况就是在创建一个类的时候,为了方便代码的管理,希望不同功能的方法能够放在一起,这样查看和修改的时候都会很方便。

例如:有一个数据的管理类,最常见的写法是创建一个类以后将数据的增删改查都写在一起。这样查看的时候,就很没有效率。这个时候要是使用分类,将增、删、改、查的方法按照功能写到不同的分类中,这样代码就简洁多了。

类别有着自己的命名规则:类名+拓展方法名  如:Data+add。

关于类目如何创建这里就不说了,在百度就可以搜索出来很多。

创建完add这个分类以后,我们就希望在add这个分类中去处理数据类的添加,将数据添加相关的方法都写在这个分类中:

Data+Add.h中的代码:

#import "Data.h"

@interface Data (Add)

- (void)addData;

@end

Data+Add.m中的代码:

#import "Data+Add.h"

@implementation Data (Add)

- (void)addData{

NSLog(@"类目中的添加数据方法");

}

@end

这样一个简单的类目就写好了,将添加的方法写到了add这个分类中。这样以后要是遇到需要修改添加的方法的时候,直接找到这个Add分类,对分类中的方法进行修改就行了,不用再去Data类中去一个个的去找方法,找到add方法以后再去修改了。代码看着也整洁多了。同样的也可以将删除的方法写到另一个delete分类中去。

除了可以给我们自己创建的类添加分类外,我们有时候也可以给系统类添加分类。比如给NSString这个类添加一个JSON分类,来处理一些我们需要的JSON解析的功能。

OC--category(类目、分类、类别)相关推荐

  1. 分类又叫类目或者类别

    今天咱们详细的讲一下类目,所谓类目就是为已存在的类添加方法,但是不能添加成员变量. 首先为NSString添加分类 首先到xcode里面,直接上图 #import <Foundation/Fou ...

  2. category(类目)的用法,NSDate,NSTimeInterval类的使用

    分类, 类目, category目的: 为没有源代码的类添加方法(只能添加方法, 不能添加实例变量)是扩充一个类的功能的方式之一, 为原有类扩充的方法成为原类的一部分, 使用即可分类也分为.h(接口部 ...

  3. 类目,延展,协议的基本概念

    Catgory(类目/分类)     1.分类是给原有类添加方法,它只能添加方法,不能添加属性(成员变量)     2.分类中定义@property,只会生成setter/getter方法的声明,没有 ...

  4. 微信小程序服务类目大全及资质要求

    小程序发布资质要求: 最新的还是要看微信官方 微信小程序个人开放服务类目表 服务类目 类目分类一 类目分类二 引导描述 出行与交通 代驾 / / 生活服务 家政.丽人.摄影/扩印.婚庆服务.环保回收/ ...

  5. Category(分类/类目)、Protocol(协议)、Extension(扩展/延展)

    Category(分类/类目): 利用Objective-C的动态运行时分配机制,Category提供了一种比继承更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可 ...

  6. OC语言类的深入和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

  7. objective-c 类目(Category)和延展(Extension)

    类目的基本概念: 如果有封装好的一个类,随着程序功能的增加,需要在类中增加一个方法,那我们就不必在那个类中做修改或者再定义一个子类,只需要在用到那个方法时添加一个该类的类目即可. 1.在类目定义的方法 ...

  8. java category类_Category(类别)

    1.利用Objective-C的动态运行时分配机制,可以为现有的类(自己的或系统的或三方库的)添加新方法,这种为现有的类添加新方法的方式称为类别category,他可以为任何类添加新的方法,包括那些没 ...

  9. Pytorch实现102类鲜花分类(102 Category Flower Dataset)

    Pytorch实现102类鲜花分类(VGG19和ResNet152模型) 本文主要讲解该算法的实现过程,原理部分需读者自行研究,可以找一些论文之类的. 实验环境 python3.6+pytorch1. ...

最新文章

  1. 李彦宏:用“工程思维”做自动驾驶
  2. Exchange2007/2010全局进出邮件备份设置
  3. eclipse修改默认工作空间
  4. 怎样写出无法维护的代码
  5. linkedin databus介绍——监听数据库变化,有新数据到来时通知其他消费者app,新数据存在内存里,多份快照...
  6. win10+anaconda+cuda配置dlib,使用GPU对dlib的深度学习算法进行加速(以人脸检测为例)...
  7. 使用U盘安装win7系统,遇到“无法定位现有系统分区”问题
  8. How to monitor your mobile application network traffic in your own LAPTOP
  9. javasript 操作option select
  10. 张恩民 php,php100教程_php100张恩民php视频 56课时_网站编程_寂涯网络学习基地
  11. oracle 序列验证脚本,oracle 生成序列脚本
  12. .describe() python_Stataamp;Python | 分别实现多元线性回归
  13. 提交响应后无法调用sendredirect_DDD 指导应用垂直拆分后事务问题
  14. 中调用view_在 View 上使用挂起函数
  15. 路由器常见故障排除及解决方法!
  16. 3dmax入门基础知识:3dmax常用功能
  17. 大行bya412和java513_真实解密大行bya412和k3区别在哪里?哪款最好?老司机透漏评测...
  18. mysql2005导出mdf,sql server 2005只有.mdf文件如何附加
  19. 青岛科技大学和青岛大学计算机专业,青岛科技大学和青岛大学哪个好呢?优势的专业分别是什么?...
  20. java hypot_Java StrictMath hypot()方法

热门文章

  1. CSS库 Tailwind
  2. 【笔记】AASTeX模板使用
  3. 怎么实现从抖音内跳转到微信关注页面?
  4. 写给开发人员的实用密码学 - 国密对称加密算法SM4实现要点
  5. 计算机一级选择题计算题,计算机一级选择题计算一级选择题.doc
  6. ico格式的计算机图标,ico图标是什么格式的文件
  7. Python渗透测试工具合集及书籍推荐(转)
  8. python绘制糖葫芦_python用小海龟画糖葫芦
  9. python热图_python – 使用matplotlib中的3D数据生成热图
  10. kaggle api下载数据集