描述:类别是一种为现有的类添加新方法的方式
格式:与类声明不同的是,类别的声明没有实例变量
头文件 ClassName+CategoryName.h
@interface ClassName (CategoryName)
- (void) newfunc;
@end
代码文件 ClassName+CategoryName.m
@implement ClassName (CategoryName)
- (void) newfunc {}
@end
在使用时,如果不引用类别的头文件,编译器会显示warning警告
局限性:
- 无法向类中添加新的实例变量
- 名称冲突,即类别中的方法与现有的方法重名。当发生名称冲突时,类别具有更高的优先级
使用类别的目的:
- 将类的实现分散到多个不同文件或多个不同的框架中
- 创建对私有方法的前向引用
- 向对象添加非正式协议