OC学习那些事:Category
2013-08-22 09:19
190 查看
1.Category概念
OC提供了一种与众不同的方式—Category,可以动态的为已经存在的类添加新的行为(方法,不能添加成员变量)。
这样可以保证类的原始设计规模最小,功能增加在逐步扩展。
使用Category对类进行扩展时,不需要创建子类。
Category使用简单的方式,实现了类的相关方法模块化,把不同的类方法分配到不同的分类文件中。
2.Catogory的使用方法
Student+test.h文件
Student+test.m文件
main.m文件:
3.Category的使用场景
定义某些类的情况下(例如需求变更),你可能想要为其中的某个或者几个类添加新的方法。
一个类中包含了许多不同类的方法需要实现,而这些方法需要不同的团队的成员实现。
使用基础类库的类时,又可能希望这些实现一些自己需要的方法。比如写个NSString +JSON.h,为NSString这个类拓展一些解析JSON的方法。
OC提供了一种与众不同的方式—Category,可以动态的为已经存在的类添加新的行为(方法,不能添加成员变量)。
这样可以保证类的原始设计规模最小,功能增加在逐步扩展。
使用Category对类进行扩展时,不需要创建子类。
Category使用简单的方式,实现了类的相关方法模块化,把不同的类方法分配到不同的分类文件中。
2.Catogory的使用方法
Student+test.h文件
#import "Student.h" // ()代表一个分类,()中的test代表分类的名称 @interface Student (test) //只能扩展方法,不能添加成员 -(void)test2; @end
Student+test.m文件
#import "Student+test.h" -(void)test2 { NSLog(@"调用了test2方法"); } @end
main.m文件:
#import<Foundation/Foundation.h> #import "Student.h" //导入分类 #import "Student+Test.h" int main(int argc,const char *argv[]) { @autoreleasepool { Student *stu = [[Student alloc]init]autorelease]; //调入分类方法 [stu test2] } }
3.Category的使用场景
定义某些类的情况下(例如需求变更),你可能想要为其中的某个或者几个类添加新的方法。
一个类中包含了许多不同类的方法需要实现,而这些方法需要不同的团队的成员实现。
使用基础类库的类时,又可能希望这些实现一些自己需要的方法。比如写个NSString +JSON.h,为NSString这个类拓展一些解析JSON的方法。
相关文章推荐
- OC语言学习 (五) Category分类 和 类的延展Extension
- OC学习那些事:点语法
- OC学习 -- Category(类目)
- OC学习总结之block、category
- OC学习第七天_2 类的拓展 Category Extension Protocol delegate
- OC学习之道:OC中类别--Category类目的使用/Eetension类的扩展 的使用
- 黑马程序员——OC学习——Category
- OC学习那些事:内存管理
- 黑马程序员---OC学习笔记之分类(Category)延展
- OC学习那些事:self、自动释放、变量作用域
- 学习笔记13-OC@category+@block
- 黑马程序员——OC学习之分类category的使用
- OC_分类(Category)学习笔记
- OC学习那些事:第一个OC应用程序
- OC学习那些事:内存管理
- Snail—OC学习之类别Category
- OC基础学习——Block语法的学习和Category与Extension的初步认识
- 黑马程序员----OC学习笔记之category,extension,protocol
- OC学习那些事:Block
- OC学习那些事:第一个OC类