iOS中 分類(category)與擴展(Extension)的區別?


1.分類(category)的作用

(1).作用:可以在不修改原來類的基礎上,為一個類擴展方法。
(2).最主要的用法:給系統自帶的類擴展方法。

2.分類中能寫點啥?

(1).分類中只能添加“方法”,不能增加成員變量。
(2).分類中可以訪問原來類中的成員變量,但是只能訪問@protect和@public形式的變量。如果想要訪問本類中的私有變量,分類和子類一樣,只能通過方法來訪問。
(3).如果一定要在分類中添加成員變量,可以通過getter,setter手段進行添加。

 

1.在項目中添加類,選擇Objective-C File,填寫自定義類名。

1.NSString+DLog.h文件:

 

2.NSString+DLog.m文件:

 

 

 

5.分類(category)和類擴展(extension)的關系

1.類擴展(extension)是category的一個特例,有時候也被稱為匿名分類或者私有類。他的作用是為一個類添加一些私有的成員變量和方法。
2.類擴展能寫點啥?和分類不同,類擴展即可以聲明成員變量又可以聲明方法。
3.類擴展聽上去很復雜,但其實我們很早就認識他了。你記得繼承自UIViewController的ViewController和繼承自NSObject的類有什么不同么?
4.類擴展可以定義在.m文件中,這種擴展方式中定義的變量都是私有的,也可以定義在.h文件中,這樣定義的代碼就是共有的,類擴展在.m文件中聲明私有方法是非常好的方式。
5.類擴展中添加的新方法,一定要實現。categorygory中沒有這種限制。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM