protocol的基本使用
1,格式:
@protocol 協議名稱 <NSObject>
協議內容
@end
2,協議的使用,
@interface 類名 : 父類名 <協議名,協議名2>
@end
然後再.m方法中實現協議裏聲明的方法,當遵守多個協議時,多個協議以逗號隔開.
3,使用注意.
1,protocol就是用來聲明方法,不能聲明成員變量,也不能實現方法.
2,只要某個類遵守了這個協議,那麼就擁有了這個協議的所有方法聲明.
3,只要父類遵守了這個協議,那麼子類也遵守了.
4,Protocol裏的方法可以讓任何類去實現,Protocol只是聲明.
5,OC不能繼承多個類,但是可以遵守多個協議.
6,<NSObject>是基協議,是最基本最根本的協議,其中聲明瞭很多基本的方法.
7,協議可以遵守協議,當一個協議遵守了另一個協議,就可以擁有另一個協議中的方法聲明.
4,Protocol中的關鍵字
@required和@optional是Protocol中的兩個關鍵字.
@required修飾的方法聲明是必須實現的,這個關鍵字也是默認的.
@optional修飾的方法聲明可以不用實現.
5,Protocol的類型限制
1,給id類型的限制
使用id存儲對象時,給對象類型的限制: id<協議A> 變量名; 例: 就是需要給變量baomu傳一個遵守協議<zhaogubabyProtocol>的對象.
2,給對象的限制
當對象類型遵守協議時,可以賦值的對象既要是同一個類型,又要遵守協議.
3,關聯關係下,對象的類型的限制問題.
當一個類的對象是另一個類的成員變量時,需要遵守協議才能賦值.
6,Protocol的代理設計模式
1,代理模式的概念:傳入的對象,代替當前類完成某個功能,稱爲代理.
利用協議實現代理模式的主要思路爲:
1)定義一個協議,裏面聲明代理類需要實現的方法列表.
2)創建一個代理類,遵守上面的代理協議.
3)在需要代理的類中,定義一個對象類型爲id且遵守代理協議的成員變量.
4)在需要代理的類中調用成員變量_delegate(代理)的方法,調用代理類的方法.
5)main.m或其他使用需要代理的類的文件中,爲需要代理的類的成員變量(代理類)賦值.
protocol的基本使用與代理設計模式的應用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.