首页 > 系统 > iOS > 正文

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

2019-11-09 17:11:01
字体:
来源:转载
供稿:网友

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

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

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

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

接着就是选择category:

然后看效果:

看看实现文件格式:

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

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

总结来说:

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

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

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

Hope To Help You !

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表