iOS中 分类(category)与扩展(Extension)的区别?

本文围绕Objective-C展开,介绍了分类(category)的作用,即不修改原类为其扩展方法,主要用于给系统自带类扩展方法,且分类只能添加方法。还阐述了类扩展(extension),它是分类的特例,可添加私有成员变量和方法,与分类有不同的编写规则。

1.分类(category)的作用

(1).作用:可以在不修改原来类的基础上,为一个类扩展方法。
(2).最主要的用法:给系统自带的类扩展方法。

2.分类中能写点啥?

(1).分类中只能添加“方法”,不能增加成员变量。
(2).分类中可以访问原来类中的成员变量,但是只能访问@protect和@public形式的变量。如果想要访问本类中的私有变量,分类和子类一样,只能通过方法来访问。
(3).如果一定要在分类中添加成员变量,可以通过getter,setter手段进行添加。

 

1.在项目中添加类,选择Objective-C File,填写自定义类名。

1.NSString+DLog.h文件:

 

2.NSString+DLog.m文件:

 

 

 

5.分类(category)和类扩展(extension)的关系

1.类扩展(extension)是category的一个特例,有时候也被称为匿名分类或者私有类。他的作用是为一个类添加一些私有的成员变量和方法。
2.类扩展能写点啥?和分类不同,类扩展即可以声明成员变量又可以声明方法。
3.类扩展听上去很复杂,但其实我们很早就认识他了。你记得继承自UIViewController的ViewController和继承自NSObject的类有什么不同么?
4.类扩展可以定义在.m文件中,这种扩展方式中定义的变量都是私有的,也可以定义在.h文件中,这样定义的代码就是共有的,类扩展在.m文件中声明私有方法是非常好的方式。
5.类扩展中添加的新方法,一定要实现。categorygory中没有这种限制。

 

转载于:https://www.cnblogs.com/jerTao/p/11157884.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值