OC类别
2015-11-03 20:08
253 查看
有时我们需要在一个已经定义好的类中增加一些方法,而不想去重写该类。比如,当工程已经很大,代码量比较多,或者类中已经包住很多方法,已经有其他代码调用了该类创建对象并使用该类的方法时,可以使用类别对该类扩充新的方法。
注意1:
类别只能扩充方法,而不能扩充成员变量。
注意2:
(1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量
(2)在分类方法的实现中可以访问原来类中的成员变量;
(3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告);
(4)方法调用的优先级:分类->原来的类->父类,若包含有多个分类,则最后参与编译的分类优先;
(5)在很多的情况下,往往是给系统自带的类添加分类,如NSObject和NSString,因为有的时候,系统类可能并不能满足我们的要求。
(6)在大规模的应用中,通常把相应的功能写成一个分类,可以有无限个分类,对原有类进行扩充,一般分模块写,一个模块一个分类。
注意1:
类别只能扩充方法,而不能扩充成员变量。
注意2:
(1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量
(2)在分类方法的实现中可以访问原来类中的成员变量;
(3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的方法无法再使用(警告);
(4)方法调用的优先级:分类->原来的类->父类,若包含有多个分类,则最后参与编译的分类优先;
(5)在很多的情况下,往往是给系统自带的类添加分类,如NSObject和NSString,因为有的时候,系统类可能并不能满足我们的要求。
(6)在大规模的应用中,通常把相应的功能写成一个分类,可以有无限个分类,对原有类进行扩充,一般分模块写,一个模块一个分类。
相关文章推荐
- hud 3579 解同余方程的应用
- 伟大的进步————扩展欧几里得
- 关于eclipse中“fix project properties”
- Java过滤器,SpringMVC拦截器之间的一顺序点关系
- ListView onTouchEvent 快速滑动丢失 ACTION_DOWN事件
- 动态规划(1)
- 图像拼接(类stitcher 用于图像拼接)
- MySQLdb
- OC 协议
- getRequestDispatcher()与sendRedirect()的区别
- T-SQL学习之路之数据库完整性之参照完整性
- 运算符优先级口诀
- IAR 环境安装【TI CC2540开发版 New SmartRF】
- viso2010从mysql中导出ER图
- viso2010从mysql中导出ER图
- python里面区分ascii码与unicode码
- A Simple Study on Kali Linux
- JVM类加载器
- hihocoder 1145
- nginx autoindex