OBJECT-C 類別

類別是一種爲現有的類添加新方法的方式。你可以爲任何類添加新的方法,包括那些你沒有源代碼的類。

類別的聲明格式與類的聲明格式相似:

@interface NSString(NumberConvenience)

-(NSNumber *)IengthAsNumber;

@end

該聲明具有兩個特點。首先,現有的類位於@interface關鍵字之後,其後是位於圓括號中的一個新名稱。該聲明表示,類別喝的名稱是NumberConvenience,而且該類別將向NSString類中添加IengthAsNumber方法。但不能添加新實現變量,因此與類的聲明不同的是,類別的聲明中沒有實例變量部分。

與@interface部分對應的還有一個@implementation部分,你可以在@implementation部分實現自己的方法。

@implementation NSString(NumberConvenience)

-(NSNumber *)lengthAsNumber

{

unsigned int length = [self length];

return ([NSNumber numberWithUnsignedInt:lenght]);

}

@end

類別的侷限性:

第一:無法向類中添加新的實例變量。類別沒有位置容納實例變量

第二:名稱衝突,即類別中的方法與現有的方法重名。當發生名稱衝突時,類別具有更高的優先級。你的類別方法將完全取代初始方法,從而無法再使用初始方法。

類別的作用:

將類的實現分散到多個不同文件或多個不同框架中,

創建對私有方法的前向引用,

向對象添加非正式協議

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章