黑马程序员---OC category

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

1.介绍

当我们日常工作中写好了一个类的功能后期发现又要加入新功能时的时候,我们会在原类上增加新的函数,可是随着后期功能的增多,会导致这个类不好维护。
这时候我们会想,我们能不能新增功能又不改变原类的结构,并且通过原类又可以使用新增的方法呢?这个时候就要引入category这个概念了。

2.用途

1.将类的实现分散到多个不同文件或多个不同框架中。
2.将常用的相关的方法分组。
3.向对象添加非正式协议。

3.代码事例

#import "Person.h"

@interface Person (Work)
-(void) playBasketball;

-(void) buildBody;
@end


#import "Person+Work.h"

@implementation Person (Work)
-(void)playBasketball
{
    NSLog(@"play basketball");
}

-(void)buildBody
{
    NSLog(@"build body");
}
@end


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

#import "Person.h"

@implementation Person
//定义了人的吃和睡觉 这属于休息
//人还要工作的啊,我们这个可以放在分类中
-(void)eat
{
    NSLog(@"I'm eatting");
}

-(void)sleep
{
    NSLog(@"I'm sleeping");
}

@end


#import <Foundation/Foundation.h>
//导入头文件
#import "Person+Work.h"
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Person *person = [Person new];
        
        person.buildBody;
        person.playBasketball;
        
    }
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值