iOS 类别(类目)与延展(扩展)区别讲义

我们在项目中或多或少都会接触到类别,延展,那么到底类别是什么,而延展又是什么呢?今天我们一块来探讨下:

类别就是为已存在的类添加新的方法,但是不能添加实例变量。比如系统的类,我们看不到他的.m文件,所以没有办法用直接添加方法的方式去实现。这个时候我们可以使用类别来给它添加一些新的方法供我们使用,再具体点说就是,比如说NSString类有10个方法(假设,具体几个,我也没注意),但是呢,NSString可能就是说这10个方法无法满足我们的项目需求,于是我们就会有两种思路,要不就是继承它,然后添加方法,实例变量等,要不就是采用类别的方法来给它添加方法,于是,就引出了我们今天需要探讨的类别。

好了,那么下边就上代码:

其实这个没什么好上代码的,就截图看看过程吧点击cmd+n创建新文件,然后出现下图:

接着就是选择category:

然后看效果:

看看实现文件格式:

就是图片中的,我们创建好了一个category,并且在category中定义了一个方法,方法名是printCustomStr,然后在.m中实现,以后哪里需要用的时候我们导入这个类别的头文件,就可以用它里边的方法了,给firstViewController添加的一些方法


上边是创建类别,那么什么时候用类别呢?

总结来说:

1、类包含了很多个方法实现,而这些方法需要不同团队的成员来实现
2、当你在使用基础类库中的类时,你不想继承这些类而只想添加一些方法

那么延展是个什么东西呢?

在我看来,我什么时候会用延展呢?我在封装控件的时候会用到延展,为什么会用到延展,就是因为我有一些变量,属性,方法等不想暴露在外边,这个时候就可以用到延展,严格意义上来说,oc是没有私有变量或者方法这一说的,不过我们可以通过延展来实现这个私有方法或者变量。


Hope To Help You !


技术交流群:141624834 进群请说你看的那篇博客,我们一起探讨成长


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值