分类的作用:
在不修改原有类的基础上增加新的方法,把一个庞大的类分模块开发,一个庞大的类可以由多个人编写,更有利于团队合作
先声明分类---实现分类 --- --使用分类,类名+扩展方法,分类不能继承父类
分类,不修改源文件的基础上,给类增加新的功能
1.分类只增加方法,不能增加成员变量和 @property
2.分类中可以访问原来的实例变量
3.在分类中和类有同名的方法,优先访问分类的方法,原类的方法被忽略掉
4.多个分类,每个分类都由同名方法,执行访问的是最后便已的那个类别的同名方法
编译顺序
非正式协议:通常定义为NSObject类的类别
即凡NSObject或Foundation框架增加的类或其子类的类别,都是非正式协议
一般只给NSObject的子类添加类别
类的延展又称为扩展extendsion
是category的一个特例
类的匿名实现
延展的方法不能通过类别去实现
@implementation Person()
@end
私有方法通过self去调用
#import"Person.h"
@interfacePerson()
-(void)run;
@end
@implementation Person
-(void)run{
NSLog(@"run");
}
-(void)work{
NSLog(@"work");
}
-(void)test{
[selfrun];//私有方法通过self调用
}
@end