iOS之深入解析分類Category的底層原理
Objective-C 中的 Category 是對裝飾模式的一種具體實現(xiàn)。它的主要作用是在不改變原有類的前提下,動態(tài)地給這個類添加一些方法。
分類 Category 可以拓展類的屬性、方法、協(xié)議等信息。
把一個類拆分成多個模塊,如下,需要把 Person 類分成 A 和 B 模塊,則分為 Person+A 和 Person+B 模塊,這就用到 Category:
根據(jù)蘋果官方文檔對 Category 的描述,它的使用場景主要有三個:
給現(xiàn)有的類添加方法;
將一個類的實現(xiàn)拆分成多個獨立的源文件;
聲明私有的方法。
其中,第一個是最典型的使用場景,應用最廣泛。
使用分類需要注意:
分類是用于給原有類添加方法的,因為分類的結(jié)構(gòu)體指針中,沒有屬性列表,所以原則上講他只能添加方法,不能添加屬性(成員變量),實際上他是可以通過其他方式來添加屬性,比如 runtime。但是使用 runtime 也只能實現(xiàn) setter 和 getter 方法,而沒有_成員變量,如果調(diào)用_成員變量,程序還是會報錯。
如果要使用
iOS
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。