您好,登錄后才能下訂單哦!
類別(Category)的基本概念
封裝是面向?qū)ο蟮囊粋€(gè)特征,OC也不例外,但是有的時(shí)候我們會(huì)碰到這樣的一種情況,不如我封裝了一個(gè)類,
不想再動(dòng)它了,可是隨著程序功能的增加,需要在那個(gè)類中增加一個(gè)小小的方法,這是我們就不必再那個(gè)類中
做修改或者在定義一個(gè)子類,只需要在用到的地方隨手添加一個(gè)該類的類別(Category)即可。
(1)在類別中定義的方法,會(huì)成為原始類的一部分,與其他方法的調(diào)用沒有區(qū)別。
(2)通過(guò)給父類定義類別方法,其子類也會(huì)繼承這些方法。如果子類添加類別方法,父類則不會(huì)用手子類的類別方法。
類別方法的應(yīng)用
在運(yùn)行時(shí)跟其他的方法沒有區(qū)別。
類別方法的局限性
現(xiàn)有類中的方法
類別的命名和用法
類別的命名規(guī)則:類名+擴(kuò)展方法,如:NNString+Add;
類別的接口聲明與類的定義十分相似,但是類別不繼承父類,只需要帶有一個(gè)括號(hào),表明該類的主要用途
聲明文件:
#import <Foundation/Foundation.h> @interface NSArray (Convert) +(NSMutableArray *)arrayFormNumber:(int)number; @end
實(shí)現(xiàn)文件:
#import "NSArray+Convert.h" @implementation NSArray (Convert) +(NSMutableArray *)arrayFormNumber:(int)number{ NSMutableArray *numberArray=[[NSMutableArray alloc]init]; while (number) { int last=number%10; //取出最后一位; number=number/10; [numberArray addObject:[NSNumber numberWithInt:last]]; } return [numberArray autorelease]; } @end
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。