黑马程序员技术交流社区

标题: 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