iOS——Category

iOS——Category

什么是Category

Category模式用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择。新添加的方法同样也会被被扩展的类的所有子类自动继承。当知道已有类中某个方法有BUG,但是这个类是以库的形式存在的,我们无法直接修改源代码的时候,Category也可以用于替代这个已有类中某个方法的实体,从而达到修复BUG的目的。然而却没有什么便捷的途径可以去调用已有类中原有的那个被替换掉方法实体了。需要注意的是,当准备有Category来替换某一个方法的时候,一定要保证实现原来方法的所有功能,否则这种替代就是没有意义而且会引起新的BUG。和子类不同的是,Category不能用于向被扩展类添加实例变量。Category通常作为一种组织框架代码的工具来使用。
举个例子:简单来说假如我们需要实现自定义button的话,需要新建一个继承于UIButton的类,并在创建UIButton时,直接创建新建的这个Button类,然后我们可以在这个新的Button类里添加成员变量以及方法等等。而分类(Category),像是一个削弱版的新建类,在这个分类里只能去添加方法不能添加成员变量。分类的好处就是只要引入了这个分类,只要是UIButton就能使用这个分类添加的方法了。

Category的用法

在我们的项目里创建新的File:
在这里插入图片描述

选择Objective-C File:

在这里插入图片描述

File:就是新的分类的名字
File Type:选择Category
Class:就是谁将使用这个分类,就写谁,假如是给UIButton添加分类就写UIButton,假如是给UILabel添加分类就写UILabel。

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIButton (ButtonMethod)

@end

NS_ASSUME_NONNULL_END

这样就创建好了 想加什么方法就可以直接加进去了,比如加了类方法,调用时只要[UIButton 类方法]就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值