Objective-C入门(六)category分类

Objective-C 入门(六)category 分类
category 字面就很好理解 把你类中定义的一些方法单拿出去(为什么要拿出去呢?)
其实他的实际作用就是为写的类来扩充一些方法 这对于你的代码扩充性是一个很好的作用
category分出来的方法是不一定要全部实现的 你可以先定义出来 在你需要的时候来补充它就可以了
 
如何实现category呢
两种方法
一: 在你原有的.h头文件中 直接加入category
 例如源代码 :
 # import
 @interface Preson:NSObject{
int _age;
NSString * _name;
 }
 @propert (nonatomic,assign)int age;
 @propert (nonatomic,retain)NSString*name;
 -(void)say;
 @end;
加入category 之后.h:
 
 # import
 @interface SKPerson(自定义一个名字)//-----此处为category 需要加个小括号
 -(void)go;
 @ end
 
 @interface SKPerson:NSObject{
int _age;
NSString * _name;
 }
 @propert (nonatomic,assign)int age;
 @propert (nonatomic,retain)NSString*name;
 -(void)say;
 @end;
 
.m文件为:
    
#improt "SKPerson.h"
@implementation SKPerson(自定义一个名字)
-(void)go{
 NSLog(@"This is SKPerson category")
}
    @end;
 @implementation SKPerson
syncthsize age=_age;
syncthsize name=_name;
-(void)say{
 NSLog(@"This is SKPerson")
}
    @end;
 
二: 新建一个类 选择.category 文件 命名通用方法 SKPerson+自定义一个名字 //---------注意有个"+"号
这里就可以直接写新的方法了
 
.h文件为:
 #improt "SKPerson.h"
 @interface SKPerson(自定义一个名字)
   -(void)go; 
 @end
.m文件为:
 #improt "SKPerson(自定义一个名字)"
 @implementation SKPerson(自定义一个名字)
 -(void)go{
 NSLog(@"This is SKPerson category")
}
 @end
 
使用 category 要注意以下几点
1 可以访问原类中的方法属性
2 可以覆盖原类中的方法
3 只能增加消息 不能改变实例变量
 
                         ---------本博文针对有JAVA基础 OC还属于初学者 文中有错误的地方还请指出
 
 
 
 

文章名称:Objective-C入门(六)category分类
当前链接:http://scjbc.cn/article/ggepoj.html

其他资讯