person+money.h 这是类目类
#import "Person.h"
//这是扩展person类的接口类,独立一个文件
@interface Person (Money)
-(void) haveMoney;
@end
person+money.m 这是类目类
#import "Person+Money.h"
//这是扩展person类的实现类,独立一个文件
@implementation Person (Money)
-(void) haveMoney{
NSLog(@"人人有钱");
}
@end
person.h
#import <Foundation/Foundation.h>
//这是原始类
@interface Person : NSObject
@property(nonatomic,copy) NSString *name;
@property(nonatomic,retain) NSNumber *age;
-(void) originTest;
@end //这是原始类的扩展类,直接定义与原始类同一文件中
@interface Person (Creat)
+(id) personWithName:(NSString *) name;
@end //这是原始类的扩展类,直接定义与原始类同一文件中
@interface Person (Test)
-(void) test;
@end
person.m
#import "Person.h"
//这是person类的实现类
@implementation Person:NSObject -(id) init{
self=[super init];
NSLog(@"调用类自定义的init 方法");
return self;
} +(id) personWithName:(NSString *) name{
Person *person=[[Person alloc] init];
person.name=name;
return person;
}
//这是person类的实现类,直接定义与原始类同一文件中
-(void) test{
NSLog(@"这是类目定义的方法");
} -(void) originTest{
NSLog(@"这是原始类的方法");
}
-(void) haveMoney{
NSLog(@"人人有钱");
}
@end
person_family.h 这是延展的类
#import "Person.h" @interface Person ()
-(void) haveFamily;
@end
main.m
//类目扩展学习
Person *person=[Person personWithName:@"caictou"];
//这是原始类定义的方法
[person originTest];
//这是同一个文件的扩展类定义的方法
[person test];
//这是独立一个文件的扩展类定义的方法
[person haveMoney];
//这是对立一个文件的延展类定义的方法
[person haveFamily];