延展和類目

2021-06-29 16:31:55 字數 789 閱讀 1003

--------延展和類目

相同點:類目和延展的作用都是為了擴充套件乙個類。

一、類目的定義和作用

類目也叫分類,英文category,在沒有原類.m檔案的基礎上,給該類新增方法。

比如,nsstring類原本沒有hellostring方法,我們又沒有nsstring類的原**,那我們想給nsstring類新增乙個hellostring的方法,只有通過宣告子類或者類目才可以達到這個目的。

類目的檔名規則:類名+類目名稱

二、類目使用需要注意的問題:

1、類目裡不能新增例項變數,但是類目宣告可以用屬性,其實屬性就是一對兒方法,那麼在.m裡面需要實現這個屬性的setter方法和getter方法,在這兩個實現方法裡面依然不能使用自己新增的例項變數。

2、類目裡新增的方法不能和原始類中的方法重名,否則會導致覆蓋。

3、乙個類可以新增多個類目,但是類目名和方法名不能重複。

4、類目中的方法可以成為原始類的一部分,和原始類方法級別相同,可以被子類繼承。

三:延展也叫extension:

延展是一種特殊形式的類目,主要是在乙個類的.m裡面宣告與實現

延展的作用:就是給某類新增私有方法或私有變數

四、使用延展需要注意的幾個問題:

1、如果括號裡沒有類目名,則認為延展裡面的方法為全都必須實現,如果有名,則認為是可選實現。

2、雖然延展是給乙個類定義私有方法,但是沒有oc沒有絕對的私有方法,其實還是可以呼叫,另外延展裡面宣告的變數只能在該類內部使用,外界訪問不了。

3、如果是新建檔案建的某類延展.h檔案,則不能加例項變數。

類目和延展

類目 category 為現有類新增新的方法,但是不能新增例項變數。通過類目加入的方法和原始類的方法沒有區別,同樣可以被繼承。類目可以覆寫原始類中得方法,但是一旦覆寫後,原始類中得方法將不可再被呼叫。inte ce nsmutablearray sort 為nsmutablearray 類新增sor...

類目 延展 協議

1.類目 類目就是為已存在的類新增新的方法。但是不能新增例項變數。比如系統的類,我們看不到他的.m檔案,所以沒有辦法用直接新增方法的方式去實現。inte ce nsmutablearray sort 為nsmutablearray類新增sort方法,sort就是類目名,做到見名知意 void inv...

延展 協議 類目

一.延展 1.延展以 inte ce開頭,然後寫當前延展的類名,類名後加乙個 到 end結束 2.一般延展會寫在自己寫的.m檔案中,把一些不想讓外部呼叫的屬性放在延展裡,這樣這條屬性只能夠在類的內部使用,外部使用不了,盡最大可能保護當前類的安全 3.類目一般是給看不見.m的檔案進行擴充套件,延展一般...