Category使得開(kāi)發(fā)過(guò)程中,減少了繼承的使用,避免子類(lèi)層級(jí)的膨脹。合理使用,可以在不侵入原類(lèi)代碼的基礎(chǔ)上,寫(xiě)出漂亮的擴(kuò)展內(nèi)容。我更習(xí)慣稱(chēng)之為“分類(lèi)”。
Category和Extension類(lèi)似,都是對(duì)原類(lèi)的擴(kuò)展,區(qū)別是前者需要提供Category的名稱(chēng),并且不直接支持屬性;后者為匿名,多存在于類(lèi)的實(shí)現(xiàn)文件,觀感上實(shí)現(xiàn)屬性、變量、方法的私有效果。
主要記錄分類(lèi)使用過(guò)程中常涉及的內(nèi)容:
1.關(guān)聯(lián)對(duì)象的使用
分類(lèi)雖然不直接支持屬性,但是可以利用關(guān)聯(lián)對(duì)象的方法,達(dá)到屬性的正常使用效果。
添加常用的刷新類(lèi)庫(kù)MJRefresh:https://github.com/CoderMJLee/MJRefresh
為了避免原代碼被侵入,采用了分類(lèi)方案,給UIScrollView添加新的屬性和方法。新建了一個(gè)分類(lèi)UIScrollView+RefreshControl,在.h文件中聲明了幾個(gè)屬性:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式