Objective-C]OC中類別(Category)基本概念與用法 - 程式人生

文章推薦指數: 80 %
投票人數:10人

類別(Category)的基本概念. 封裝是面向物件的一個特徵,OC也不例外,但是有的時候我們會碰到這樣的一種情況,不如我封裝了一個類,. 程式人生>>Objective-C]OC中類別(Category)基本概念與用法 Objective-C]OC中類別(Category)基本概念與用法 阿新••發佈:2019-02-05 類別(Category)的基本概念 封裝是面向物件的一個特徵,OC也不例外,但是有的時候我們會碰到這樣的一種情況,不如我封裝了一個類, 不想再動它了,可是隨著程式功能的增加,需要在那個類中增加一個小小的方法,這是我們就不必再那個類中 做修改或者在定義一個子類,只需要在用到的地方隨手新增一個該類的類別(Category)即可。

(1)在類別中定義的方法,會成為原始類的一部分,與其他方法的呼叫沒有區別。

(2)通過給父類定義類別方法,其子類也會繼承這些方法。

如果子類新增類別方法,父類則不會用手子類的類別方法。

類別方法的應用 對現有類進行擴充套件:比如,可以進行擴充套件Cocoatouch框架中類,你在類別中增加的方法會被子類所繼承,而且 在執行時跟其他的方法沒有區別。

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

對類中的方法進行歸類:利用category把一個龐大的類劃分為小塊來分別進行開發,從而更好的對類中的方法進行更新和維護。

類別方法的侷限性 無法向類別中,新增新的例項變數,類別沒有位置來容納例項變數。

如果想增加類的例項變數,只能通過定義子類的方式。

如若在類別中覆蓋現有類的方法。

這樣可能會引起super訊息鏈的斷裂,因為類別中的方具有更高的優先順序,因此,一般不要覆蓋 現有類中的方法 類別的命名和用法 類別的命名規則:類名+擴充套件方法,如:NNString+Add; 類別的介面宣告與類的定義十分相似,但是類別不繼承父類,只需要帶有一個括號,表明該類的主要用途 宣告檔案: ? 1 2 3 4 5 6 #import @interface NSArray(Convert) +(NSMutableArray *)arrayFormNumber:(int)number; @end ? 1 實現檔案: ? 1 ? 1 #import "NSArray+Convert.h" @implementation NSArray(Convert)+(NSMutableArray*)arrayFormNumber:(int)number{ NSMutableArray*numberArray=[[NSMutableArrayalloc]init];while (number){int last=number%10; //取出最後一位; number=number/10;[numberArrayaddObject:[NSNumbernumberWithInt:last]];}return[numberArrayautorelease];}@end 新增方法: 【caffe學習筆記之5】Win10系統下Caffe的Python介面設定方法並繪製網路結構圖 «上一篇 分散式多程序下一篇» 相關推薦 【Objective-C】OC中類別(Category)基本概念與用法 類別(Category)的基本概念    ... Objective-C]OC中類別(Category)基本概念與用法 類別(Category)的基本概念 封裝是面向物件的一個特徵,OC也不例外,但是有的時候我們會碰到這樣的一種情況,不如我... 【Objective-C】OC中引用計數和物件所有權的基本概念與用法 cocoa中的記憶體管理機制--引用計數 ... C/C++%s%d%u基本概念與用法 %d十進位制有符號整數%u十進位制無符號整數... Android入門——Fragment詳解之基本概念與用法(一) 引言 Android在3.0中引入了Fragments的概念,其目的是用在大螢幕裝置上–例如平板電腦上,支援更... 【Objective-C】OC中協議(Protocol)的基本概念和用法 協議(Protocol)的基本概念    ... 【資料探勘筆記十】聚類分析:基本概念和方法 1)10.聚類分析:基本概念和方法聚類是一個把資料物件集劃分成多個組或簇的過程,使得簇內的物件具有很高的相似性,但與其他簇中的... AngularJS的基本概念和用法 完成provide註意點復用交互如果職責基本概念很好 mvc 為什麽需要mvc(mvc只是手段,終極目標... python學習7_1面向對象基本概念和用法 定義cal自己的roomini所有自己發生觸發定義類時會立刻觸發類體代碼的運行,產生名稱空間 class... iptables防火牆基本概念及用法              ... 搜尋 基礎教學 Mysql入門 Sql入門 Android入門 Docker入門 Go語言入門 Ruby程式入門 Python入門 Python進階 Django入門 Python爬蟲入門 最近訪問



請為這篇文章評分?