iOS學習總結----代理協議1

1. 簡單使用

•基本用途

(1)可以用來聲明一大堆方法(不能聲明成員變量)

(2)只要某個類遵守了這個協議,就相當於擁有這個協議中的所有方法聲明

(3)只要父類遵守了某個協議,就相當於子類也遵守了

2. 協議的編寫

@optional(不要求必須實現)@protocol 協議名稱(規範寫法:  類名+Delegate)

// 方法聲明列表
@end
 

3. 某個類遵守協議

@interface 類名 : 父類 <協議名稱>
@end

4. 關鍵字

協議中有2個關鍵字可以控制方法是否要實現(默認是@required),在大多數情況下,用途在於程序員之間的交流
• @required:這個方法必須要實現(若不實現,編譯器會發出警告)
• @optional:這個方法不一定要實現

5. 協議遵守協議

(1) 一個協議可以遵守其他多個協議,多個協議之間用逗號 , 隔開

(2) 一個協議遵守了其他協議,就相當於擁有了其他協議中的方法聲明

@protocol 協議名稱 <協議1, 協議2>
@end

6. 基協議

• NSObject是一個基類,最根本最基本的類,任何其他類最終都要繼承它
•其實還有一個協議,名字也叫NSObject,它是一個基協議,最根本最基本的協議
• NSObject協議中聲明很多最基本的方法,比如description、retain、release等
•建議每個新的協議都要遵守NSObject協議

7. 定義變量時指定協議

// NSObject類型的對象,並且要遵守NSCopying協議
NSObject<NSCopying> *obj;
// 任何OC對象,並且要遵守NSCoding協議
id<NSCoding> obj2;

8. 設計原理

有些麻煩的事情不想自己親自做,就可以找個人幫忙做,即交給代理對象去做

9. 設計原則

(1)得擁有某個代理對象屬性
(2)要很清楚代理有哪些方法
(3)要保證能解耦合

 10. 實現方案

•定義一個protocol,在其中聲明一些和代理溝通的方法
•擁有一個代理屬性id<protocol> delegate
•讓代理遵守protocol



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