iOS 類擴充套件與分類的區別

2021-07-11 09:52:18 字數 1060 閱讀 9662

類擴充套件 (class extension也有人稱為匿名分類)

能為某個類附加額外的屬性,成員變數,方法宣告

一般的類擴充套件寫到.m檔案中

一般的私有屬性寫到類擴充套件

@inte***ce

mitchell()

//屬性

//方法

@end

分類的小括號中必須有名字

@inte***ce 類名(分類名字)

/*方法宣告*/

@end

@implementation類名(分類名字)

/*方法實現*/

@end

分類只能擴充方法,不能擴充套件屬性和成員變數(如果包含成員變數會直接報錯)。

如果分類中宣告了乙個屬性,那麼分類只會生成這個屬性的set、get方法宣告,也就是不會有實現。

舉例說明:如果我們分別在,類擴充套件與分類中新增了兩個屬性,

分類:

@inte***ce uibutton (delaycontrol)

/** * 需要延遲的時間

*/@property(nonatomic, assign) nstimeinterval delaytimeinterval;

@end

類拓展

@inte***ce uibutton ()

/** * 需要延遲的時間

*/@property(nonatomic, assign) nstimeinterval delaytimeinterval;

@end

注意:

雖然我們再類別中宣告屬性不會報錯,但是@property並沒有自動為我們設定的屬性生成set、get方法。

如果想要實現則需要使用到執行時中屬性的動態掛載

iOS 類擴充套件與分類的區別

引用自此處 類擴充套件 class extension也有人稱為匿名分類 作用 能為某個類附加額外的屬性,成員變數,方法宣告 一般的類擴充套件寫到.m檔案中 一般的私有屬性寫到類擴充套件 使用格式 inte ce mitchell 屬性 方法 end與分類的區別 分類的小括號中必須有名字 inte ...

類擴充套件與分類

類擴充套件與分類 建立日期 2016.5.12 類擴充套件可以新增方法與屬性 下面為uiview的類擴充套件 inte ce uiview uiviewhierarchy property nullable,nonatomic,readonly uiview superview property n...

iOS 繼承 分類和類擴充套件

繼承是指乙個新類擁有被繼承類 父類 的全部屬性和方法。例如,只有繼承nsobject,才有建立物件的能力。nsobject是大部分類的基類 根類,root class 當a類繼承b類,a類就擁有b類中所有成員變數 屬性 和方法。這也是繼承的主要目的。使用場景 當我們可以說通b是乙個a時,就可以使用b...