下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、iOS 類(lèi)別和擴(kuò)展( Categories 和 Extensions )分類(lèi)( Category)分類(lèi)能夠做到的事情主要是:即使在你不知道一個(gè)類(lèi)的源碼 情況下,向這個(gè)類(lèi)添加擴(kuò)展的方法。此外,分類(lèi)能夠保證你的實(shí)現(xiàn)類(lèi)和其他的文件區(qū)分開(kāi)。 1#import “ UIViewController.h ”2 interface UIViewController ( CustomView )3 -( void ) extMethod ;4 end使用分類(lèi)為類(lèi)添加方法( Add Methods to Classes )通過(guò)在 interface 中聲明一個(gè)額外的方法并且在 implementation 中定
2、義相同名字的方法即可。 分類(lèi)的名字 (也 就是括號(hào)括起來(lái)的 CustomView )表示的是:對(duì)于聲明于其 他地方的這個(gè)類(lèi)( UIViewController ),在此處添加的方法是 額外的,而不是表示這是一個(gè)新的類(lèi)。你不可以通過(guò)分類(lèi)為 一個(gè)類(lèi)添加額外的成員變量。在 implementation 中,引入頭文件的時(shí)候主要引用的方式是:1 #import “ UIViewController+CustomView.h ”2 implementation UIViewController ( CustomView )3 -( void ) extMethod ;4 end另外,雖然 Categor
3、y 不能夠?yàn)轭?lèi)添加新的成員變量,但是Category 包含類(lèi)的所有成員變量,即使是 private 的。Category 可以重新定義新方法,也可以 override 繼承過(guò)來(lái)的 方法。類(lèi)擴(kuò)展( Class Extensions)類(lèi)擴(kuò)展就像匿名(也就是沒(méi)有那個(gè)括號(hào)里面的名字CustomView )的分類(lèi)一樣,除了一樣不同的是,類(lèi)擴(kuò)展聲明 必須在 implementation 在實(shí)現(xiàn)。先看一段代碼: 1 interface MyObject:NSObject2 3 NSNumber* number;4 5 -(NSNumber*)getNum;6 end78 interface MyObject
4、(Setter)9 -(void)setNum:(NSNumber*)num;10 end1112 implementation MyObject13 -(NSNumber*)getNum14 15 return number;16 看上面這段代碼,有沒(méi)有問(wèn)題?編譯器編譯的時(shí)候,這段代碼是可以編譯通過(guò),但當(dāng)運(yùn)行時(shí),就會(huì)報(bào)錯(cuò)。為什么? 因?yàn)闆](méi)有實(shí)現(xiàn) Category 中的 setNum 方法。而用類(lèi)擴(kuò)展去實(shí) 現(xiàn),請(qǐng)看: 1 interface MyObject:NSObject2 3 NSNumber* number;4 5 -(NSNumber*)getNum;6 end78 interfac
5、e MyObject() / 注意這里的括號(hào)里面是沒(méi)有名字 的9 -(void)setNum:(NSNumber*)num;10 end1112 implementation MyObject13 -(NSNumber*)getNum14 15 return number;16 1718 -(void)setNum:(NSNumber*)num19 20 number = num;21 22 endsetNum 是必須要實(shí)現(xiàn),不然編譯器會(huì)提出警告。從上面看出,分類(lèi)和類(lèi)擴(kuò)展的相似之處是:都可以為類(lèi)添加 一個(gè)額外的方法;不同之處在于:要添加額外方法,分類(lèi)必須在第一個(gè)interface 中聲明方法, 并且在 implementation 中提供實(shí)現(xiàn), 不然運(yùn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年電梯設(shè)備銷(xiāo)售與后期維護(hù)合同3篇
- 2024版專(zhuān)業(yè)加氣站技術(shù)支持協(xié)議模板版B版
- 2024版存量房買(mǎi)賣(mài)合同樣式
- 2024年湖南冶金職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 2024年湖北三峽職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 狂做22-原子結(jié)構(gòu)(人教版2019必修第一冊(cè))(解析版)
- 寧波2025年浙江寧波市鎮(zhèn)海區(qū)招聘事業(yè)編制教師69人(中學(xué)崗位)筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 離子鍵(解析版)
- 大慶2024年黑龍江大慶市黨群事業(yè)單位選調(diào)13人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 2025年中國(guó)酚醛氨基樹(shù)脂增塑劑市場(chǎng)調(diào)查研究報(bào)告
- 2025年競(jìng)聘醫(yī)院內(nèi)科醫(yī)生崗位演講稿模版(3篇)
- 虛擬貨幣地址分析技術(shù)的研究-洞察分析
- 綠色供應(yīng)鏈管理制度內(nèi)容
- 心理學(xué)基礎(chǔ)知識(shí)考試參考題庫(kù)500題(含答案)
- 電力智慧檢修安全運(yùn)行三維可視化管理平臺(tái)建設(shè)方案
- 一年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)集錦
- 消防安全應(yīng)急預(yù)案下載
- 《北航空氣動(dòng)力學(xué)》課件
- 附件:財(cái)政業(yè)務(wù)基礎(chǔ)數(shù)據(jù)規(guī)范(3.0版)
- 電商公司售后服務(wù)管理制度
- 火災(zāi)應(yīng)急處理課件
評(píng)論
0/150
提交評(píng)論