黑马程序员技术交流社区
标题:
Category
[打印本页]
作者:
runsunlife
时间:
2015-8-27 06:34
标题:
Category
Category分类
1、分类的作用: 将一个类中的不同方法分到多个不同的文件中存储, 便于对类进行模块化设计、团队合作 开发。
2、可以在不修改原来类的基础上, 为这个类扩充一些方法.
分类中只能增加"方法", 不能增加成员变量、@property等。
分类可以访问原来类中的成员变量
主类与分类中方法的调用优先级问题:
1) 当分类与主类中都有同一个方法的时候, 优先调用分类中的方法。
2) 当多个分类中都有同样的一个方法的时候, 优先调用最后一个参与编译的分类中的方法。
3、类扩展(匿名分类)
1)类扩展是写在.m文件中的, 为当前类扩展一些私有的成员.
2)作用: 为某个类扩充一些私有的成员变量和方法.
3)"类扩展"对比"分类", 就少了一个分类名称,因此也有人称它为"匿名分类".
4、声明和实现一个类别
在.h文件中,声明类别:
@interface ClassName(CategoryName)
NewMethod; //在类别中添加方法
//不允许在类别中添加变量
@end
说明:
声明类别格式
1)新添加的方法必须写在 @interface 与@end之间
2)ClassName 现有类的类名(要为哪个类扩展方法)
3)CategoryName 待声明的类别名称
4)NewMethod 新添加的方法
5、注意:
1)不允许在声明类别的时候定义变量
在.m文件中(也可以在.h中实现),实现类别:
@implementation ClassName(CategoryName)
NewMethod
{
...... }
@end
说明:
实现类别格式
1)新方法的实现必须写在@implementation与@end之间
2)ClassName 现有类的类名
3)CategoryName 待声明的类别名称
4)NewMethod 新添加的方法的实现
6、调用类别中的方法
调用类别中的方法
与一般成员方法调用形式,完全一样
需要包含类别的头文件
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2