------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1.介绍
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
当我们日常工作中写好了一个类的功能后期发现又要加入新功能时的时候,我们会在原类上增加新的函数,可是随着后期功能的增多,会导致这个类不好维护。
这时候我们会想,我们能不能新增功能又不改变原类的结构,并且通过原类又可以使用新增的方法呢?这个时候就要引入category这个概念了。
2.用途
1.将类的实现分散到多个不同文件或多个不同框架中。
2.将常用的相关的方法分组。
3.向对象添加非正式协议。
3.代码事例
#import "Person.h"
@interface Person (Work)
-(void) playBasketball;
-(void) buildBody;
@end
#import "Person+Work.h"
@implementation Person (Work)
-(void)playBasketball
{
NSLog(@"play basketball");
}
-(void)buildBody
{
NSLog(@"build body");
}
@end
@interface Person : NSObject
-(void) eat;
-(void) sleep;
@end
#import "Person.h"
@implementation Person
//定义了人的吃和睡觉 这属于休息
//人还要工作的啊,我们这个可以放在分类中
-(void)eat
{
NSLog(@"I'm eatting");
}
-(void)sleep
{
NSLog(@"I'm sleeping");
}
@end
#import <Foundation/Foundation.h>
//导入头文件
#import "Person+Work.h"
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *person = [Person new];
person.buildBody;
person.playBasketball;
}
return 0;
}