您的位置:首页 > 移动开发 > IOS开发

[ios基础]大白话解释分类和扩展

2015-11-28 13:56 190 查看
在网上看了很多关于分类(Category)和扩展(Extension)的解释,通过研究和分析,把网上大神们的回答

说成大白话,希望能帮助到跟我有相同困惑的同学;

先把大神的解释抛出:

category和extension用来做类扩展的,可以对现有类扩展功能或者修改其功能。
在iOS中category应用是非常广泛的,系统自带的很多类都有多个category扩展功能。
一般category中可以定义新的方法、重写类原来的方法和添加readonly属性
而extension可以认为是匿名的category,但是这个extension相对于category有有一个特殊功能:
在extension中可以定义可写的属性,公有可读、私有可写的属性(Publicly-Readable, Privately-Writeable Properties)一般这样实现!

下面是大白话:

分类:

不能添加新的实例变量,只能声明新的方法;

分类中声明的方法,主类可直接调用;

分类继承了主类的方法和属性。

在系统调用时,先引入分类头文件的前提下,父类具有分类的属性及分类的方法。并且可以在主程序中使用分类;

扩展:

定义扩展有两种方式:1、单独创建扩展文件;2、将扩展的内容,直接写在父类的 .m文件@interface前面;

扩展所属的主文件的.m文件中实现方法的函数体。该方法在类外是不能被调用的

在扩展中定义的实例变量、属性和方法都是私有的,只能被扩展所属的主类中的方法使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: