[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文件中实现方法的函数体。该方法在类外是不能被调用的
在扩展中定义的实例变量、属性和方法都是私有的,只能被扩展所属的主类中的方法使用
说成大白话,希望能帮助到跟我有相同困惑的同学;
先把大神的解释抛出:
category和extension用来做类扩展的,可以对现有类扩展功能或者修改其功能。
在iOS中category应用是非常广泛的,系统自带的很多类都有多个category扩展功能。
一般category中可以定义新的方法、重写类原来的方法和添加readonly属性
而extension可以认为是匿名的category,但是这个extension相对于category有有一个特殊功能:
在extension中可以定义可写的属性,公有可读、私有可写的属性(Publicly-Readable, Privately-Writeable Properties)一般这样实现!
下面是大白话:
分类:
不能添加新的实例变量,只能声明新的方法;
分类中声明的方法,主类可直接调用;
分类继承了主类的方法和属性。
在系统调用时,先引入分类头文件的前提下,父类具有分类的属性及分类的方法。并且可以在主程序中使用分类;
扩展:
定义扩展有两种方式:1、单独创建扩展文件;2、将扩展的内容,直接写在父类的 .m文件@interface前面;
扩展所属的主文件的.m文件中实现方法的函数体。该方法在类外是不能被调用的
在扩展中定义的实例变量、属性和方法都是私有的,只能被扩展所属的主类中的方法使用
相关文章推荐
- (NO.00004)iOS实现打砖块游戏(三):游戏主场景和砖块
- (NO.00004)iOS实现打砖块游戏(三):游戏主场景和砖块
- (NO.00004)iOS实现打砖块游戏(三):游戏主场景和砖块
- iOS MRC手动内存管理 心得体会
- iOS 蓝牙
- iOS开发中关于import头文件放置位置的tips
- ios开发必看的博客汇总
- {iOS} 出iOS越狱渠道ipa包的方法
- iOS 代码规范
- 在iOS设备上进行抓包
- iOS沙盒路径的查看和使用
- iOS 开发技巧收集整理
- IOS开发技术之合理利用类的类别
- iOS 禁止锁屏
- iOS在纯代码中使用AutoLayout添加约束
- (NO.00004)iOS实现打砖块游戏(二):实现游戏主界面动画
- (NO.00004)iOS实现打砖块游戏(二):实现游戏主界面动画
- (NO.00004)iOS实现打砖块游戏(二):实现游戏主界面动画
- iOS系统中应用程序间通信的方法及装置
- iOS开发-使用Storyboard进行界面跳转及传值