Objective-C 入門(六)category 分類
category 字面就很好理解 把你類中定義的一些方法單拿出去(為什么要拿出去呢?)
其實(shí)他的實(shí)際作用就是為寫的類來擴(kuò)充一些方法 這對(duì)于你的代碼擴(kuò)充性是一個(gè)很好的作用
category分出來的方法是不一定要全部實(shí)現(xiàn)的 你可以先定義出來 在你需要的時(shí)候來補(bǔ)充它就可以了
如何實(shí)現(xiàn)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(自定義一個(gè)名字)//-----此處為category 需要加個(gè)小括號(hào)
-(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(自定義一個(gè)名字)
-(void)go{
NSLog(@"This is SKPerson category")
}
@end;
@implementation SKPerson
syncthsize age=_age;
syncthsize name=_name;
-(void)say{
NSLog(@"This is SKPerson")
}
@end;
二: 新建一個(gè)類 選擇.category 文件 命名通用方法 SKPerson+自定義一個(gè)名字 //---------注意有個(gè)"+"號(hào)
這里就可以直接寫新的方法了
.h文件為:
#improt "SKPerson.h"
@interface SKPerson(自定義一個(gè)名字)
-(void)go;
@end
.m文件為:
#improt "SKPerson(自定義一個(gè)名字)"
@implementation SKPerson(自定義一個(gè)名字)
-(void)go{
NSLog(@"This is SKPerson category")
}
@end
使用 category 要注意以下幾點(diǎn)
1 可以訪問原類中的方法屬性
2 可以覆蓋原類中的方法
3 只能增加消息 不能改變實(shí)例變量
---------本博文針對(duì)有JAVA基礎(chǔ) OC還屬于初學(xué)者 文中有錯(cuò)誤的地方還請(qǐng)指出
本文標(biāo)題:Objective-C入門(六)category分類
當(dāng)前鏈接:
http://weahome.cn/article/ggepoj.html