分類 Category 分類只能給類擴充方法,不能添加屬性! Category有很多種翻譯:分類 / 類別 / 類目(一般叫分類) 分類是一個類的補充,是類的一部分。 Category的作用: 可以在不修改原來類的基礎上,為這個類擴充一些方法。(使用繼承也可以,在子類中擴充父類沒有的方法) 一個龐大 ...
分類 Category
分類只能給類擴充方法,不能添加屬性!
- 什麼是Category
- Category有很多種翻譯:分類 / 類別 / 類目(一般叫分類)
- 分類是一個類的補充,是類的一部分。
- Category的作用:
- 可以在不修改原來類的基礎上,為這個類擴充一些方法。(使用繼承也可以,在子類中擴充父類沒有的方法)
- 一個龐大的類可以分模塊開發
- 一個龐大的類可以由多個人來編寫,更有利於團隊合作
- 常見用法
- 將一個類分成若幹個部分,便於閱讀和管理
- 給一個已有的類通過定義分類的方式增加功能(經常給系統的類擴充方法)
- 語法格式
@interface 類名 (分類名) //聲明擴充的方法 @end |
@implementation 類名 (分類名) //實現擴充的方法 @end |
創建一個分類:
分類的註意事項:
- 分類是用於給原有類添加方法的, 它只能添加方法, 不能添加屬性(成員變數)
- 分類中定義@property屬性, 只會生成setter/getter方法的聲明,不會生成方法的實現和實例變數。
- 可以在分類中訪問原有類中.h中的屬性
方法的調用順序: 1.分類 —> 2.本類 —> 3.父類
擴展 Extension
匿名分類 在類的.m文件中定義擴展,在擴展中定義私有屬性和私有方法。
- 概念
- Extension有很多種翻譯:擴展 / 延展 / 匿名分類(一般叫擴展)
- 擴展是一特殊的分類, 沒有分類名。
- 可以在擴展中定義實例變數,定義屬性,增加方法。
- 語法格式
@interface 類名 ( ) //聲明私有的成員變數 //聲明私有的屬性 //聲明私有的方法 @end |
- 擴展最常用的方式是:
在類的.m文件中定義擴展,在擴展中定義私有的屬性和聲明私有的方法。
在UI中常用擴展來定義私有屬性!
Category練習: