Object-C基礎-08-protocol

1、    簡單使用

1.        基本用途

  • 能夠用來聲明一大堆方法(不能聲明成員變量)程序員

  • 只要某個類遵照了這個協議,就至關於擁有這個協議中的全部方法聲明設計模式

  • 只要父類遵照了某個協議,就至關於子類也遵照了ui

 

2.        格式

  • 協議的編寫spa

@protocol 協議名稱.net

// 方法聲明列表設計

@end 代理

  • 某個類遵照協議orm

@interface 類名 : 父類 <協議名稱>對象

@end 繼承

 

3.        關鍵字

協議中有2個關鍵字能夠控制方法是否要實現(默認是@required),在大多數狀況下,用途在於程序員之間的交流

  • @required:這個方法必需要實現(若不實現,編譯器會發出警告)

  • @optional:這個方法不必定要實現

 

4.        協議遵照協議

  • 一個協議能夠遵照其餘多個協議,多個協議之間用逗號 , 隔開

  • 一個協議遵照了其餘協議,就至關於擁有了其餘協議中的方法聲明

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

@end

 

5.        基協議

  • NSObject是一個基類,最根本最基本的類,任何其餘類最終都要繼承它

  • 其實還有一個協議,名字也叫NSObject,它是一個基協議,最根本最基本的協議

  • NSObject協議中聲明不少最基本的方法,好比descriptionretainrelease

  • 建議每一個新的協議都要遵照NSObject協議

 

6.        定義變量時指定協議

// NSObject類型的對象,而且要遵照NSCopying協議

NSObject<NSCopying> *obj;

// 任何OC對象,而且要遵照NSCoding協議

id<NSCoding> obj2;

 

2、    代理設計模式

1.        設計原理

  • 有些麻煩的事情不想本身親自作,就能夠找我的幫忙作,即交給代理對象去作

 

2.        設計原則

  • 首先得擁有某個代理對象屬性

  • 其次要很清楚代理有哪些方法

  • 最後要保證能解耦

 

3.        實現方案

  • 定義一個protocol,在其中聲明一些和代理溝通的方法

  • 擁有一個代理屬性id<protocol> delegate

  • 讓代理遵照protocol

相關文章
相關標籤/搜索