A.给某个类扩充方法(不改变原来的类)
例如,给类Person加上名为Simon的category,加上一个-study方法
使用()注明
Person+Simon.h
1 @interface Person (Simon)
2 - (void) study;
3 @end
4
5 Person+Simon.m
6 @implementation Person (Simon)
7 - (void) study
8 {
9 NSLog(@"学习----");
10 }
11 @end
使用:
1 #import <Foundation/Foundation.h>
2 #import "Person.h"
3 #import "Person+Simon.h"
4
5 int main(int argc, const char * argv[]) {
6 @autoreleasepool {
7 Person *p = [[Person alloc] init];
8 [p study];
9 }
10 return 0;
11 }
12
!!注意:
1.只能增加方法,不能增加成员变量;
2.分类方法可以访问原来的成员变量;
3.分类和原类存在同名方法的时候,分类的方法优先级比较高,会覆盖原类的同名方法;
4.多个分类存在同名方法的时候,调用决定于编译顺序,调用最后编译的(编译顺序可以在项目设置的“Buid Phases”中修改);
