您好,登錄后才能下訂單哦!
藍鷗iOS培訓講師推薦:簡單的學習OC中的知識點,類目和延展,那么就要了解類目和延展分別是什么?
一、類目
為已知的類增加新的方法
1.類目方法的應用:
1)對現有類進行擴展:比如:可以擴展Cocoatouch框架中的類,在類目中增加的方法會被子類繼承,而且在運行時跟其他的方法沒有區別。
2)作為子類的替代手段:不需要定義和使用一個子類,可以通過類目直接向已有的類里增加方法。
3)對類中的方法歸類:利用catigory把一個龐大的類劃分為小塊來分別進行開發,從而更好地對類中的方法進行更新和維護。
2.類目方法的局限性:
1)無法向類目中添加新的實例變量,類目沒有位置來容納實例變量。如果想增加類的實例變量,只能通過定義子類的方式。
2)如若,在類目中覆蓋先后類的方法。這樣會引起super消息的斷裂,因為類目總的方法具有更高的優先級,因此,一般不要覆蓋現有類中的方法。
3.類目的定義:
類目的命名規則:類名+擴展方法,如“NSString+Revert”。類目的接口聲明與類的定義十分相似,但類目不繼承父類,只需要帶有一個括號,表明該類目的主要用途。
NSString+Revert.h文件:
NSString+Revert.m文件:
二、延展
可以在這個類的定義里用類目聲明私有方法
類的延展可以看成是一種匿名的類目,類有時需要一些只有自己才能看見,所用的私有方法這種私有方法可以通過延展的方式來聲明,延展中定義的方法在類本身的@implementation代碼區域中實現。
當在定義延展的時候不提供類目名時,延展中定義的方法被看作是“必須實現”的API,如果方法沒有實現代碼,那么編譯器就會給予警告,這個時候的方法實現就一定出現在類主體的@implementation代碼塊中。
OC中的類目和延展內容講解基本上就是這樣,希望能夠對你有所幫助!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。