類別 category 以及類擴充套件

2021-07-05 03:15:58 字數 800 閱讀 7666

1.可以把類別看做是可擴充套件類的介面,而無需對類進行子類化。

形式如下:

@inte***ce nsstring (extension)

-(void ) method;

@end

@implementation nsstring (extension )

-(void ) method {

@end

2.類別不可以有新的例項變數,只包含方法。乙個類可以有多個類別,但是

每個類別都必須宣告並實現不同的方法。

3.類別主要用於擴充套件系統類或者是底層框架類。類別中的方法可以覆蓋原有的方法,但是一般不這麼做。

4.類擴充套件extension

類擴充套件與類別功能相似,都可以擴充套件。

我們常常在.h檔案中對宣告乙個屬性是可讀的,而在.m檔案中宣告是可讀寫的。(僅此而已,沒有其他的用途)。

**如下:

@property(readonly) float value;

則這個類對外就暴露乙個readonly 的屬性。外部無法對它進行寫操作。

在.m檔案中

@ inte***ce rootviewcontroller()

@property (readwrite) float value;

@end

則這個類的內部就可以對其進行賦值。

5.類別與類擴充套件的區別

類別的方法不一定要在implementation 中實現,但是類擴充套件的方法一定要在implementation中實現。

並且 類擴充套件的方法一般不在.h檔案中宣告,而類別的方法是需要在.h檔案中宣告的。

Object C 類別與擴充套件Category

object c 的動態特徵允許使用類別為現有的類新增新方法,並且不需要建立子類,不需要訪問原有類的源 通過使用類別,可以動態的為現有的類新增新方法,而且可以將類定義模組化的分布到多個相關檔案中。point 1 定義類名必須是該專案中沒有的類,而定義類別時使用的類名必須是已有的類 2 定義類別時必須...

類 類別 擴充套件

class sayhelloworld.h import inte ce sayhelloworld nsobject end sayhelloworld.m import sayhelloworld.h 這裡一般用extension為原類新增變數和協議等等。implementationsayhel...

類別(category)延展(extension)

objective c中提供了可以讓我們擴充套件類定義的手段 類目,延展和協議。類目 為已知的類增加新的方法 延展 通知在本類的定義裡使用類目來宣告私有方法 協議 協議宣告了可以被任何類實現的方法。1.類目 類別 category 1 宣告類目 inte ce testmodel newmodel ...