码迷,mamicode.com
首页 > 其他好文 > 详细

Categroy(分类或类别)

时间:2015-05-18 09:02:52      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:categroy

@Categroy又称扩展类,可以动态的为类添加一些新的方法(只是方法,不能添加成员变量)
@使用Categroy对类进行扩展时,不需要创建子类
@如果分类方法与原始类中的相同,则会隐藏原始方法,且不可在分类方法中通过super调用原始方法,这里与继承不同。
@Categroy是一种简单的方式,实现了类的方法的模块化,把不同的类方法分配到不同的类文件中去。

//Student.h  用于方法的声明
#import<Foundation/Foundation.h>
@interface Student : NSObject
- (void)test;
@end

//Student.m  用于方法的实现
#import"Student.h"
@implementaion Student
- (void)test{
        NSLog(@"调用了test方法");
}
@end

在不改变上面两个文件的基础上,给Student动态添加一个方法。利用分类可以实现。

分类:
//Student+Test.h   
// 给Student添加一个方法,所以要导入其头文件
#import "Student.h"
//类名后面的()代表分类,()里的Test是分类的名称
@interface Student (Test)
//分类只能扩展方法,不能增加成员变量
- (void)test2;
@end

//Student+Test.m
#import"Student+Test.h"
@implemention Student (Test)
- test2{
        NSLog(@"调用了test2这个方法");
}
@end

接下来看如何使用
//main.m
#import<Foundation/Foundation.h>
#import"Student.h"
#import"Student+Test.h"//为了调用test2方法,必须将其导入
int main(int argc ,  const  char  *argv[])
{
        autorealesepoolP{
                Student *stu = [[[Student alloc] init] autorealease];
                [stu test]; //调用test方法
                [stu test2]; //调用test2方法
        }
}







Categroy(分类或类别)

标签:categroy

原文地址:http://blog.csdn.net/sinat_24436879/article/details/45803107

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!