Category分类的基本使用
2015-07-24 12:13
351 查看
/*
Category分类:可以给某一个类扩充一些方法(不修改原来类的代码)
声明:
@interface 类名(分类名称)
@end
实现:
@implementation 类名(分类名称)
@end
总结:
分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法
使用注意:
1.分类只能增加方法,不能增加成员变量
2.分类方法实现中能访问原来类中的成员变量
3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法失效,不建议在分类中重新实现原来的方法
4.方法调用的优先级:分类(最后参与编译的分类优先)-->原分类-->父类
.h文件不会参与编译,只用来拷贝
.m文件才参与编译
【实际开发中一般是为系统自带的类写分类】
*/
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Person+Wea.h"
int main(int argc,
const char * argv[])
{
@autoreleasepool {
Person* p = [[Person
alloc] init];
[p
test];
[p
student];
}
return 0;
}
#import <Foundation/Foundation.h>
@interface Person :
NSObject
-(void)test;
@end
#import "Person.h"
@implementation Person
-(void)test{
NSLog(@"person的test方法");
}
@end
#import "Person.h"
@interface Person (Wea)
-(void)student;
@end
#import "Person+Wea.h"
@implementation Person (Wea)
-(void)student{
NSLog(@"student的方法");
}
@end
Category分类:可以给某一个类扩充一些方法(不修改原来类的代码)
声明:
@interface 类名(分类名称)
@end
实现:
@implementation 类名(分类名称)
@end
总结:
分类的作用:在不改变原来类内容的基础上,可以为类增加一些方法
使用注意:
1.分类只能增加方法,不能增加成员变量
2.分类方法实现中能访问原来类中的成员变量
3.分类可以重新实现原来类中的方法,但是会覆盖掉原来的方法失效,不建议在分类中重新实现原来的方法
4.方法调用的优先级:分类(最后参与编译的分类优先)-->原分类-->父类
.h文件不会参与编译,只用来拷贝
.m文件才参与编译
【实际开发中一般是为系统自带的类写分类】
*/
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Person+Wea.h"
int main(int argc,
const char * argv[])
{
@autoreleasepool {
Person* p = [[Person
alloc] init];
[p
test];
[p
student];
}
return 0;
}
#import <Foundation/Foundation.h>
@interface Person :
NSObject
-(void)test;
@end
#import "Person.h"
@implementation Person
-(void)test{
NSLog(@"person的test方法");
}
@end
#import "Person.h"
@interface Person (Wea)
-(void)student;
@end
#import "Person+Wea.h"
@implementation Person (Wea)
-(void)student{
NSLog(@"student的方法");
}
@end
相关文章推荐
- 将Django框架和遗留的Web应用集成的方法
- 简介Django中内置的一些中间件
- HDU 1527 取石子游戏 (博弈)
- 威佐夫博弈
- Django实战:构建一个blog
- GO-回调函数
- 详解Django缓存处理中Vary头部的使用
- Django Models的数据类型 汇总
- Algorithms—23.Merge k Sorted Lists
- 解读Django框架中的低层次缓存API
- HDU 2492 Ping pong (树状数组)
- Coefficient of Determination(R Squared)(How to determine goodness of fit)?
- product_category
- Golang实例001
- django 1.8 官方文档翻译: 2-4-4 编写迁移
- django 1.8 官方文档翻译: 2-3-2 关联对象参考
- 解读Django框架中的低层次缓存API
- 详解Django缓存处理中Vary头部的使用
- 简介Django中内置的一些中间件
- 将Django框架和遗留的Web应用集成的方法