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 ...