分類
OC中特有的一種語法,Category献烦,通常我們叫它分類滓窍、類別和類目。分類可以在不改變原來類的基礎上巩那,給類擴充一些方法吏夯,繼承也可以給類擴充方法,子類繼承父類的所有方法即横,也可以聲明并實現(xiàn)獨有的新方法噪生,但分類不可以給類添加新的成員變量和屬性(其實是可以利用runtime機制給類添加屬性,但是從分類的特性來說是不能添加新的成員變量和屬性的)。
分類的格式:
@interface 類名(分類名稱)
//方法聲明
@end
@implementation 類名(分類名稱)
//方法實現(xiàn)
@end
一個龐大的類,開發(fā)中我們并不建議去締造這樣一個龐大的類踩衩,因為沒有人會愿意做下一個接盤手砸捏,就連自己都是不接受的躺屁,這個時候使用分類,將這個龐大的類分成不同模塊,并由多人協(xié)同開發(fā),這樣才更有利于團隊合作璃吧,并能大大提高開發(fā)效率、有利于代碼的管理废境。
但在使用分類時我們要注意以下幾點:
1.分類可以訪問原始類的成員變量畜挨、屬性,但不能添加成員變量噩凹、屬性巴元,只能添加方法。如果想添加變量驮宴,可以考慮通過繼承創(chuàng)建子類
2.分類可以實現(xiàn)原始類的方法逮刨,但不建議這么做,因為它會直接替換掉原來的方法幻赚,這么做的后果是再也不能訪問原來類的方法
3.多個分類中如果實現(xiàn)了相同的方法,只有最后一個參與編譯的才會有效
匿名分類(擴展)
擴展是分類的一種特殊形式禀忆,是特殊的分類臊旭,擴展沒有名字落恼,當不想對外公開一些類的方法箩退、屬性和成員變量的時候,我們可以使?類擴展。
如何創(chuàng)建類擴展佳谦?一種是另起文件戴涝,一種是直接在原始類中添加。
類擴展的功能:
1.可以實現(xiàn)私有方法
2.方便開發(fā)者調用不公開的方法钻蔑,處理相應的業(yè)務邏輯
3.可以聲明私有的成員變量和屬性