------- android培训、java培训、ios培训、期待与您交流! ----------
一.分类(Category)
1.类别的作用
在不修改原类的基础上增加类的功能。
团队之间分工合作更加灵活。
2、使用类别的步骤
先声明类别--->实现类别--->使用类别
分类的一般格式为:
声明部分: @interface 类名 (分类名)
@end
实现部分: @implementation 类名(分类名)
@end
注意:不允许在声明类别的时候定义变量,但在延展中可以使用。
例:
#import <Foundation/Foundation.h>
#import "student.h"
#import "student+playgame.h" //需要增加声明
int main(int argc, const char * argv[]) {
@autoreleasepool {
student *s=[student new];
[s run]; //原studengt类中并没有run的方法
}
return 0;
}
#import <Foundation/Foundation.h>
@interface student : NSObject
//一片空白,防止对结果产生影响
@end
#import "student.h"
@implementation student
//同一片空白
@end
#import "student.h"
@interface student (playgame) //这是分类,添加了一个名为‘playgame'的分类名,虽然实际内容并不是play game……
-(void)run; //分类中的方法
@end
#import "student+playgame.h"
@implementation student (playgame)
-(void)run{
NSLog(@"你正在跑!"); //对run方法进行实现。
}
@end
1 延展类别又称为扩展(Extendsion)Extension是Category的一个特例 其名字为匿名(空),并且新添加的方法一定要予以实现。(Category没有这个限制)
#import "student.h"
@interface student ()
@end
需要注意的是,延展依存于它的类,要想实现延展中声明的方法就必须在原类的.m文件中实现。