IOS开发基础Object-C(11)—Category语法

谢天谢地,糟心的内存管理终于讲完了,我们的OC内存管理也就先告一段落了,以后还是需要多练习多理解,记住,理解最重要。

今天呢,我们再来讲一个很重要的语法——Category,根据字面的意思呢就是种类、分类。这是一个OC特有的语法,在Java中是没有的,但是在OC项目中经常被用到,所以说很重要。

我查了很多的资料,发现书中对Category并没有一个很明确的定义,如果要给他一个定义的话,我觉得称它为扩展类比较合适,为什么说是扩展类呢?我跟大家说一下Category的用途大家就了解了。

Category的用途

1.  在不创建继承类的情况下实现对已有类的扩展。

2.  简化类的开发工作(当一个类需要多个程序员协同开发的时候,Category可以将同一个类根据用途分别放在不同的源文件中,从而便于程序员独立开发相应的方法集合)。

3.  将常用的相关的方法分组。

4.  在没有源代码的情况下可以用来修复BUG。

总之就是一句话,Category 可以动态的为已经存在的类添加方法,而且原始规模较小,不需要创建子类

Category的用法

我们还是来新建一个类吧,在实际运用中介绍一下它的用法
首先,我们来新建一个Student类

Student.m

#import "Student.h"    
    
@implementation Student    
       
#pragma mark test方法    
- (void)test{    
        
    NSLog(@"调用了test方法");    
        
}    
    
    
@end 
现在给大家出一个题目,在不动Student的情况下,给Student添加一个新方法,你会怎么做?

我就不卖关子了,直接上图

1、新建Objective-C category


2、分类名称填写Test,Category on 选择Student


3、注意扩展类的命名格式

Student+Test.h

#import "Student.h"

//()代表着一个扩展类
//()里面的Test代表着扩展类的名称
@interface Student (Test)

-(void)test2;

@end

Student+Test.m

import "Student+Test.h"
@implementation Student (Test)
- (void)test2{    
        
    NSLog(@"调用了test2方法");    
        
}
@end

是不是很方便?剩下的就不用我再说了吧,大家快来多多练习一下吧

相关链接

http://pan.baidu.com/s/1eQ4UYQm



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值