Objective-C 入门(六)category 分类category 字面就很好理解 把你类中定义的一些方法单拿出去(为什么要拿出去呢?)其实他的实际作用就是为写的类来扩充一些方法 这对于你的代码扩充性是一个很好的作用category分出来的方法是不一定要全部实现的 你可以先定义出来 在你需要的时候来补充它就可以了如何实现category呢两种方法一: 在你原有的.h头文件中 直接加入category例如源代码 :# import <Foundation/Foundation.h>@interface Preson:NSObject{int _age;NSString * _name;}@propert (nonatomic,assign)int age;@propert (nonatomic,retain)NSString*name;-(void)say;@end;加入category 之后.h:# import <Foundation/Foundation.h>@interface SKPerson(自定义一个名字)//-----此处为category 需要加个小括号-(void)go;@ end@interface SKPerson:NSObject{int _age;NSString * _name;}@propert (nonatomic,assign)int age;@propert (nonatomic,retain)NSString*name;-(void)say;@end;.m文件为: #improt "SKPerson.h"@implementation SKPerson(自定义一个名字)-(void)go{NSLog(@"This is SKPerson category")} @end;@implementation SKPersonsyncthsize age=_age;syncthsize name=_name;-(void)say{NSLog(@"This is SKPerson")} @end;二: 新建一个类 选择.category 文件 命名通用方法 SKPerson+自定义一个名字//---------注意有个"+"号这里就可以直接写新的方法了.h文件为:#improt "SKPerson.h"@interface SKPerson(自定义一个名字) -(void)go;@end.m文件为:#improt "SKPerson(自定义一个名字)"@implementation SKPerson(自定义一个名字)-(void)go{NSLog(@"This is SKPerson category")}@end使用 category 要注意以下几点1 可以访问原类中的方法属性2 可以覆盖原类中的方法3 只能增加消息 不能改变实例变量 ---------本博文针对有JAVA基础 OC还属于初学者 文中有错误的地方还请指出