iOS開發(fā)中category優(yōu)點(diǎn)和缺點(diǎn),作用

優(yōu)點(diǎn):

不需要通過增加子類而增加現(xiàn)有類的行為(方法),且類目中的方法與原始類方法基本沒有區(qū)別;

通過類目可以將龐大一個(gè)類的方法進(jìn)行劃分,從而便于代碼的日后的維護(hù)、更新以及提高代碼的閱讀性;

缺點(diǎn):

無法向類目添加實(shí)例變量,如果需要添加實(shí)例變量,只能通過定義子類的方式;

類目中的方法與原始類以及父類方法相比具有更高優(yōu)先級(jí),如果覆蓋父類的方法,可能導(dǎo)致super消息的斷裂。因此,最好不要覆蓋原始類中的方法。

類別的作用

給系統(tǒng)原有類添加方法,不能擴(kuò)展屬性。

如果類別中方法的名字跟系統(tǒng)的方法名一樣,在調(diào)用的時(shí)候類別中的方法優(yōu)先級(jí)更高;

分散類的實(shí)現(xiàn):如:

+?(NSIndexPath?*)indexPathForRow:(NSInteger)row?inSection:(NSInteger)section

原本屬于NSIndexPath的方法,

但因?yàn)檫@個(gè)方法經(jīng)常使用的表的時(shí)候調(diào)用、跟表的關(guān)系特別密切,因此把這個(gè)方法一類別的形式、聲明在UITableView.h中。

聲明私有方法,某一個(gè)方法只實(shí)現(xiàn),不聲明,相當(dāng)于私有方法。

類別不能聲明變量,類別不可以直接添加屬性。

property描述setter方法,就不會(huì)報(bào)錯(cuò)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,603評(píng)論 30 472
  • OC的理解與特性 OC作為一門面向?qū)ο蟮恼Z(yǔ)言,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝、繼承、多態(tài)。它既具有靜態(tài)語(yǔ)言的特性...
    克魯?shù)吕?/span>閱讀 501評(píng)論 0 0
  • 面試題參考1 : 面試題[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios閱讀 1,814評(píng)論 0 4
  • 序言 目前形勢(shì),參加到iOS隊(duì)伍的人是越來越多,甚至已經(jīng)到供過于求了。今年,找過工作人可能會(huì)更深刻地體會(huì)到今年的就...
    Jack_lin閱讀 78,945評(píng)論 110 1,946
  • 文/Jack_lin(簡(jiǎn)書作者)原文鏈接:http://www.itdecent.cn/p/5d2163640e2...
    筆筆請(qǐng)求閱讀 627評(píng)論 0 0

友情鏈接更多精彩內(nèi)容