



下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程介紹居間服務(wù)合同
- 進(jìn)口車(chē)免稅合同協(xié)議
- 水務(wù)安全協(xié)議書(shū)
- 產(chǎn)品售后服務(wù)與保修條款協(xié)議
- 區(qū)域總代理協(xié)議合同
- 《胸部損傷病人護(hù)理》課件
- 都蘭縣糧油購(gòu)銷(xiāo)合同協(xié)議
- 互聯(lián)網(wǎng)+電子法律服務(wù)協(xié)議
- 住宅小區(qū)物業(yè)管理服務(wù)合同
- 超市門(mén)店設(shè)計(jì)合同協(xié)議
- 2025年全國(guó)保密教育線(xiàn)上培訓(xùn)考試試題庫(kù)附參考答案(鞏固)帶答案詳解
- 工程總承包的試題及答案
- 《電磁感應(yīng)原理解析》課件
- 成都輸液劑項(xiàng)目可行性研究報(bào)告參考范文
- 2025年二級(jí)注冊(cè)建筑師資格考試《建筑結(jié)構(gòu)、建筑物理與設(shè)備》真題卷(附答案)
- 鋰電池基礎(chǔ)知識(shí)培訓(xùn)課件
- 脊柱損傷搬運(yùn)操作
- 2024年陜西高中學(xué)業(yè)水平合格考試化學(xué)試卷真題(含答案詳解)
- 2025年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(中小學(xué)組)
- 國(guó)家義務(wù)教育質(zhì)量監(jiān)測(cè)學(xué)生相關(guān)因素調(diào)查問(wèn)卷
- 年產(chǎn)5萬(wàn)噸汽車(chē)用再生鋁合金錠項(xiàng)目節(jié)能評(píng)價(jià)報(bào)告
評(píng)論
0/150
提交評(píng)論