[ios基礎]大白話解釋分類和擴展

在網上看了很多關於分類(Category)和擴展(Extension)的解釋,通過研究和分析,把網上大神們的回答

說成大白話,希望能幫助到跟我有相同困惑的同學;


先把大神的解釋拋出:

  1. category和extension用來做類擴展的,可以對現有類擴展功能或者修改其功能。
  2. 在iOS中category應用是非常廣泛的,系統自帶的很多類都有多個category擴展功能。
  3. 一般category中可以定義新的方法、重寫類原來的方法和添加readonly屬性
  4. 而extension可以認爲是匿名的category,但是這個extension相對於category有有一個特殊功能:
  5. 在extension中可以定義可寫的屬性,公有可讀、私有可寫的屬性(Publicly-Readable, Privately-Writeable Properties)一般這樣實現!

下面是大白話:

分類:

不能添加新的實例變量,只能聲明新的方法;

分類中聲明的方法,主類可直接調用;

分類繼承了主類的方法和屬性。

在系統調用時,先引入分類頭文件的前提下,父類具有分類的屬性及分類的方法。並且可以在主程序中使用分類;


擴展:

定義擴展有兩種方式:1、單獨創建擴展文件;2、將擴展的內容,直接寫在父類的 .m文件@interface前面;

擴展所屬的主文件的.m文件中實現方法的函數體。該方法在類外是不能被調用的

在擴展中定義的實例變量、屬性和方法都是私有的,只能被擴展所屬的主類中的方法使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章