一、分類(類別)作用:擴充套件已有類的功能
1、分類是原來的類增加方法
2、在方法內部可以訪問原有類的成員變數(定義標頭檔案中)
步驟 1、為原有類建立乙個分類
2、在分類中增加新的方法的宣告和實現
注意點:
1、分類中不能擴充套件原有類的成員變數
2、@property在分類中只能生成getter setter方法的宣告,不能生成實現和成員變數,在分類的內部可以訪問原有類的成員變數(不是定義在.m檔案中的)
// 分類可以擴充系統自帶的類的功能
給nsobject增加分類會影響到所有的類,但是這個東西一定要謹慎小心
3、你不能在分類中定義與原有類同名方法,不同的分類之間也不可以有同名的方法
4、如果你再分類中增加乙個原有類同名方法 ,那麼分類中個方法會覆蓋原有類的方法(哪怕你沒有匯入這個分類)
5、多個分類中如果有相同方法,最後編譯分類的方法
二、類擴充套件:一般情況下在.m檔案中,為類增加私有的屬性和方法
#import "czperson.h"
/* 1、小括號中不可以有任何內容
2、一般寫在.m檔案中,增加類的私有成員變數、屬性、方法
*/@inte***ce
czperson ()
// 增加私有屬性
@property (nonatomic,copy) nsstring *name;
//增加私有方法
- (void) show;
@end
@implementation
czperson
- (nsstring *)description
- (void) show
@end
iOS類別和類擴充套件
在ios中,有一種機制可以使使用者在沒有遠嗎的情況下擴充套件類的功能,但不是通過繼承,這就是類別。ios中沒有類似c 中可以定義私有方法和私有變數的關鍵字,要定義私有方法和私有變數,可以用類擴充套件來實現。類別 類別在不需要繼承的情況下可以擴充套件類的功能。但類別不能新增類的屬性和私有變數。類別可以...
ios 類別和類擴充套件
二兩種字典轉模型的 本文分為兩部分 一 教你怎樣一部獲取成員屬性 通過nsobject autologproperty分類 二 對比kvc和runtime兩種字典轉模型的方法並抽取乙個分類 void createpropertycodewithdict nsdictionary dict else ...
類 類別 擴充套件
class sayhelloworld.h import inte ce sayhelloworld nsobject end sayhelloworld.m import sayhelloworld.h 這裡一般用extension為原類新增變數和協議等等。implementationsayhel...