IOS之Category,Extension,Protocol,delegate

類目(Category)又叫類別:爲封裝類添加額外的方法,對現有類擴展設計模式

類目定義的方法會成爲原始類的一部分,子類能夠繼承已經添加類目的父類的全部方法,但父類不能擁有子類的類目方法,類目不繼承原始類,只兼容和擴展原始類ui

沒法向類目中添加新的實例變量,只能經過子類添加;若是在類目中覆蓋現有類方法,會引發super 消息的斷裂,由於類目方法更高的優先級,所以通常不要覆蓋現有類方法spa

 

延展(Extension)「匿名」的類目,延展定義類的私有方法,通常是在類的實現文件@implementation之上定義如:Person() 和類目的區別在於括號裏面是空的,沒有名字的,暫時性的存在,只能本類調用方法,子類也沒法調用父類的延展設計

另外在本類的實現文件@implementation之上也能夠定義私有方法,私有的靜態變量代理

延展的特色就是定義私有方法orm

 

協議(Protocol)沒有父類也不能定義實例變量,只聲明方法,聲明未知類的接口,兩個類之間的通訊對象

@required :必須實現。默認繼承

@optional :選擇性的實現接口

NSObject爲基本類根類也爲基協議,能夠寫也能夠不寫事件

 

代理設計模式:兩個對象協同解決難題,用於對象之間的通訊

通常用於控件和控制器對象之間的通訊,控件事件發生要經過控制器行爲表現

就是說該對象類有委託方法,實現委託方法(遵照委託協議)須要在其餘類中實現,經過其餘類對象來代理解決

相關文章
相關標籤/搜索