溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

簡單介紹下iOS開發(fā)OC中的類目和延展

發(fā)布時間:2020-05-13 16:31:56 來源:億速云 閱讀:208 作者:三月 欄目:移動開發(fā)

文主要給大家介紹iOS開發(fā)OC中的類目和延展,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下iOS開發(fā)OC中的類目和延展吧。 

類目:為已知的類增加新的方法;

延展:通知在本類的定義里使用類目來聲明私有方法;

一、類目:

1、類目方法的應(yīng)用:

1)對現(xiàn)有類進(jìn)行擴(kuò)展:如:可以擴(kuò)展Cocoatouch框架中的類,在類目中增加的方法會被子類繼承,而且在運行時跟其他的方法沒有區(qū)別。

2)作為子類的替代手段:不需要定義和使用一個子類,可以通過類目直接向已有的類里增加方法。

3)對類中的方法歸類:利用catigory把一個龐大的類劃分為小塊來分別進(jìn)行開發(fā),從而更好地對類中的方法進(jìn)行更新和維護(hù)。

2、類目方法的局限性:

1)無法向類目中添加

新的實例變量,類目沒有位置來容納實例變量。如果想增加類的實例變量,只能通過定義子類的方式。

2)如若,在類目中覆蓋先后類的方法。這樣會引起super消息的斷裂,因為類目總的方法具有更高的優(yōu)先級,因此,一般不要覆蓋現(xiàn)有類中的方法。

3、類目的定義:

類目的命名規(guī)則:類名+擴(kuò)展方法,如“NSString+Revert”。類目的接口聲明與類的定義十分相似,但類目不繼承父類,只需要帶有一個括號,表明該類目的主要用途。

4、舉例說明:

NSString+Revert.h文件:

簡單介紹下iOS開發(fā)OC中的類目和延展

NSString+Revert.m文件:

簡單介紹下iOS開發(fā)OC中的類目和延展

二、延展:

類的延展可看成是一種匿名的類目,類有時需要一些只有自己看得見的,所用的私有方法可以通過延展的方式來聲明,延展中定義的方法在類本身的@implementation代碼區(qū)域中進(jìn)行實現(xiàn)。

簡單介紹下iOS開發(fā)OC中的類目和延展

當(dāng)在定義延展的時候不提供類目名時,延展中定義的方法既被視為“必須實現(xiàn)”的API在這種情況下,如果方法沒有實現(xiàn)代碼,那么編譯器會報警告,這個時候方法的實現(xiàn)就一定要出現(xiàn)在類主體的@implementation代碼塊中了。

看完以上關(guān)于iOS開發(fā)OC中的類目和延展,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI