類目:為現有的類添加新方法
1.需要添加該類的新方法,但是不能繼承該類的情況下
類目使用需要注意的問題:
1.類目里面不能添加實例變量,但是類目可以聲明屬性,但必須實現set get 方法,在這兩個實現方法里面依然不能使用自己添加的實例方法
2.類目里添加的方法不能和原類中的方法重名,否則會導致覆蓋
3.一個類可以添加多個類目,但是類目名和方法名不能重復
4.類目中的方法可以成為原始類的一部分,和原始類方法級別相同,可以被子類繼承
類目的創建與使用:
File:是類目的名稱
File Type:是類型,這是選擇Category
Class:是填寫所要添加類目的類
//添加后的類目名
//在.h文件里添加方法-(void)hi;在.m文件實現
在main文件里調用,記得導入類目文件
這樣,類目就創建并實現好
隱藏類目(延展):類目的私有方法
在需要添加類目的類的.m文件里面#import "類名"下面添加
//這一塊就是延展(匿名類目)
@interface Student()
//建議把實例變量放在延展里面
{
NSInteger _age;
}//解決需要添加私有方法,但是又不能聲明在頭文件聲明的矛盾
@PRoperty(nonatomic,strong)NSString* name;
//在這里聲明私有方法
-(void)printHello;
@end
這樣一個匿名類目就完成了,需要注意的是在main的文件里可以printHello方法不能使用,printHello是私有方法,不能給其他類使用,只能由匿名類目的類去調用
協議:是一套標準,這個標準里聲明了很多方法,但是補關心具體這些方法是怎么實現的,具體的實現是由遵循這個協議的類去完成
OC里面繼承關系是單繼承,但有時候我們需要使用多繼承,這時候我們就可以使用協議
File:協議名字
File Type:類型(選擇Protocol)
//創建Student類,
Student.h文件
Student.m
實現協議里面的方法
在main文件里面實現
這樣,一個簡單的協議就已經實現
新聞熱點
疑難解答