代码改变世界

分类

2015-12-12 14:52  AB小博客  阅读(142)  评论(0)    收藏  举报

如果一个类很大 有很多种方法 好几个程序员完成  用分类 或者 没有源代码的情况下想在类上面增加新的方法(不能增加变量) 用分类

//
//  main.m
//  分类
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Person+Ext.h"
#import "BIgClass.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *per = [[Person alloc]init];
        [per eat];
        [per work];
        [per sleep];
        //1.目的 增加新的方法 给大的类进行分类
        [per eatOther];
        [per reading];
        [per playGame];
        BIgClass *bc = [[BIgClass alloc]init];
        [bc m2];
    }
    return 0;
}
//
//  Person.h
//  分类


#import <Foundation/Foundation.h>

@interface Person : NSObject
-(void)eat;
-(void)work;
-(void)sleep;
@end

#import "Person.h"

@implementation Person
-(void)eat{
    NSLog(@"eat...");
}
-(void)work{
    NSLog(@"work...");
}
-(void)sleep{
    NSLog(@"sleep...");
}
@end
//
//  Person+Ext.h
//  分类


#import "Person.h"
/*语法格式 @interface 要扩展的类名称 (分类名称)
 
@end
 */
@interface Person (Ext)
-(void)eatOther;
-(void)reading;
-(void)playGame;

@end
//
//  Person+Ext.m
//  分类

#import "Person+Ext.h"

@implementation Person (Ext)
-(void)eatOther{
    NSLog(@"吃螃蟹");
}
-(void)reading{
    NSLog(@"读书");
}
-(void)playGame{
    NSLog(@"玩游戏");
}
@end
//
//  BIgClass.h
//  分类

#import <Foundation/Foundation.h>

@interface BIgClass : NSObject
-(void)m1;
-(void)m2;
@end

@interface BIgClass (Ext1) 
-(void)m3;
-(void)m4;
@end

@interface BIgClass (Ext2)
-(void)m5;
-(void)m6;
@end
@interface BIgClass (Ext3)
-(void)m7;
-(void)m8;
@end