亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS階段學習第19天筆記(協議-Protocol)

2019-11-14 18:43:01
字體:
來源:轉載
供稿:網友

iOS學習(OC語言)知識點整理

一、關于協議(PRotocol)的介紹

1)概念:協議指多個對象之間協商的一個接口對象,協議提供了一些方法用在協議的實現者和代理者
      之間通訊的一種方式

2)聲明一個協議@protocol協議的名字<基協議> 一個協議可以遵守另一個協議:
      基協議(這個協議就擁有了基協議中所有方法的聲明)

3)協議中不能聲明成員變量,只能有方法聲明。

4)協議中聲明方法,默認是required 表明方法是必須要實現的,否則會有系統警告,但不會報錯

5)協議中@optional表明方法是可選的(可以實現也可以不實現)

6)使用協議:某個類遵守協議,類名后面<協議名> ;所謂遵守協議就是:類擁有了協議中所有方法的聲明,
      必須實現協議中規定的方法;一個類可以遵守多個協議(類擁有所有協議中聲明的方法,必須實現所有
      協議中規定的方法)

7)一個協議可以遵守另一個協議,遵守協議后就擁有了另一個協議所有方法的聲明,同時還可以添加自己的方法

8)一個協議可以遵守多個協議,并擁有所有基協議的方法

9)協議的聲明與使用方法 實例代碼:
 
    1、添加一個基于Protocol命名為MyProtocol的.h 文件  聲明一些協議方法 例如: 

 1 #import <Foundation/Foundation.h> 2 @protocol MyProtocol <NSObject> 3 //協議中不能聲明成員變量,只有方法 4 //{ 5 //    int _a; 6 //} 7 //協議中聲明方法,默認是required 8 -(void)test1; 9 -(void)test2;10 //@required表明方法是必須要實現的11 @required12 -(void)test3;13 //@optional表明方法是可選的(可以實現也可以不實現)14 @optional15 -(void)test4;16 @end


  2、定義一個Person類 在.h文件中使用協議MyProtocol  例如: 

1 #import <Foundation/Foundation.h>2 #import "MyProtocol.h"   3 @interface Person : NSObject<MyProtocol>4 @property(nonatomic,copy)NSString *name;5 -(void)print;6 @end

 

  3、在Person類的.m文件中實現協議方法 例如: 

 1    #import "Person.h" 2     @implementation Person 3     -(void)print 4     { 5      NSLog(@"person:%@",self.name); 6     } 7     //實現協議中規定的方法 8     -(void)test1 9     {10       NSLog(@"test1");11     }12     -(void)test213     {14     15     }16     -(void)test317     {18     19     }20  21     @end

 

 4、在main文件中執行方法 例如:

 1  Person *p1=[[Person alloc]init]; 2   //判斷p1所屬的類是否遵守了協議 3   if([p1 conformsToProtocol:@protocol(MyProtocol)]){ 4   //判斷p1所屬的類是否實現了方法 5   if([p1 respondsToSelector:@selector(test1)]){ 6        [p1 test1]; 7       } 8    } 9         10    NSObject *obj1=[[NSObject alloc]init];11    obj1=nil;12    NSObject *obj2=@"hello";13    obj2=nil;14    //對obj3指向的對象做一個限制15    NSObject<MyProtocol> *obj3=@"abc";16    //obj4可以指向任意類型的對象,但是必須遵守MyProtocol協議17    id<MyProtocol> obj4=[[Person alloc]init];18    Person<MyProtocol> *obj5=[[Person alloc]init];

  
10)OC中沒有多繼承,但可以通過協議實現,可通過使用多個協議來實現類似多繼承的方法。

11)協議主要用來統一規范接口;統一接口的方法:繼承和協議

12)協議與繼承的區別
     
    1、繼承也可以統一規范接口:子類繼承父類所有的方法(可以不用重寫,除非父類的方法不適合子類),
         重寫后的方法名與父類一樣,達到了統一接口的目的;子類中可以增加成員變量
 
    2、協議:一個類遵守協議,類就具有協議中所有的方法,如果多個類都遵守同一個協議,這些類都有協議
         中規范的方法,達到了統一接口的目的;協議中不能有成員變量


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热国产精品视频| 久久精品久久久久久国产 免费| 国产精品稀缺呦系列在线| 欧美成人四级hd版| 日韩精品在线视频美女| 26uuu另类亚洲欧美日本老年| 国内精品久久久久影院优| 黑人巨大精品欧美一区二区| 欧美最猛黑人xxxx黑人猛叫黄| 中文字幕亚洲一区二区三区| 欧美国产日韩精品| 国产伊人精品在线| 亚洲va电影大全| 亚洲国产成人精品久久| 91精品国产777在线观看| 日本一欧美一欧美一亚洲视频| 亚洲欧洲偷拍精品| 九九九久久久久久| 亚洲欧美制服第一页| 亚洲性夜色噜噜噜7777| 欧美激情在线视频二区| 不卡av在线播放| 日韩电影在线观看中文字幕| 91影视免费在线观看| 国产精品高精视频免费| 最近2019年日本中文免费字幕| 69av视频在线播放| 欧美激情免费视频| 久久69精品久久久久久国产越南| 秋霞成人午夜鲁丝一区二区三区| 欧美极品少妇xxxxx| 欧美精品在线极品| 国模精品视频一区二区| 国产日韩欧美电影在线观看| 91精品国产91久久久久久最新| 欧美成人午夜视频| 国产日韩在线精品av| 国产精自产拍久久久久久蜜| 欧美成人剧情片在线观看| 在线一区二区日韩| 精品国产福利视频| 91精品国产免费久久久久久| 韩国精品久久久999| 国产精品视频色| 亚洲激情视频在线播放| 国外成人免费在线播放| 欧美激情图片区| 日本精品视频在线观看| 日韩电影大片中文字幕| 亚洲欧美日韩一区二区在线| 欧美日韩综合视频网址| 亚洲国产精品高清久久久| 亚洲网站在线播放| 97视频免费在线看| 国产精品jizz在线观看麻豆| 精品国产91乱高清在线观看| 日韩成人在线观看| 亚洲国产婷婷香蕉久久久久久| 成人福利在线观看| 亚洲一区二区福利| 欧美日韩在线视频一区| 日韩精品免费在线观看| 国产一区二区在线播放| 精品在线欧美视频| 亚洲成avwww人| 精品国偷自产在线视频| 国产成人精品午夜| 久久亚洲精品一区二区| 色哟哟入口国产精品| 色偷偷91综合久久噜噜| 欧美一级视频在线观看| 亚洲一区二区三区sesese| 亚洲激情在线视频| 精品久久在线播放| 成人激情视频网| 国产三级精品网站| 日韩av网站导航| 97av在线视频免费播放| 国产综合在线看| 欧美日韩在线免费观看| 亚洲欧美中文在线视频| 日韩欧美亚洲综合| 欧美高清在线播放| 91av免费观看91av精品在线| 亚洲午夜久久久久久久| 伊人久久大香线蕉av一区二区| 日韩天堂在线视频| 欧美一区二区大胆人体摄影专业网站| 亚洲第一网站免费视频| 日韩精品日韩在线观看| 亚洲国产福利在线| 国产精品久久久久久久久久ktv| 国产精品678| 青青青国产精品一区二区| 久久精品夜夜夜夜夜久久| 亚洲欧美国产另类| 久久久久久亚洲精品不卡| 欧美精品久久久久久久免费观看| 久久亚洲精品国产亚洲老地址| 亚洲午夜色婷婷在线| 久青草国产97香蕉在线视频| 国产亚洲精品日韩| 国产亚洲综合久久| 亚洲女人天堂网| 精品国产精品三级精品av网址| 中文字幕欧美日韩精品| 欧美日韩激情视频8区| 欧美大片在线看免费观看| 欧美激情小视频| 亚洲成人aaa| 国内精品久久久久久影视8| 96国产粉嫩美女| 成人免费视频a| 成人免费高清完整版在线观看| 亚洲欧美制服另类日韩| 神马久久久久久| 国产亚洲aⅴaaaaaa毛片| 国产精品欧美久久久| 欧美激情中文字幕乱码免费| 国产在线精品自拍| 欧美一区二区大胆人体摄影专业网站| 国产精品亚洲综合天堂夜夜| 亚洲精品一区二区久| 亚洲一区中文字幕在线观看| 狠狠综合久久av一区二区小说| 91国语精品自产拍在线观看性色| 38少妇精品导航| 永久免费毛片在线播放不卡| 亚洲国产日韩欧美在线动漫| 亚洲欧美一区二区精品久久久| 日韩精品在线观看一区| 欧美色视频日本版| 久久久久在线观看| 性色av一区二区三区| 国产丝袜精品视频| 亚洲成avwww人| 久久久精品一区二区三区| 亚洲午夜未满十八勿入免费观看全集| 国产欧美日韩精品丝袜高跟鞋| 国产91ⅴ在线精品免费观看| 8x拔播拔播x8国产精品| 欧美视频第一页| 精品中文字幕久久久久久| 欧亚精品中文字幕| 日韩电影在线观看永久视频免费网站| 北条麻妃一区二区在线观看| 成人福利免费观看| 欧美成人精品一区| 欧美激情二区三区| 亚洲欧美三级在线| 国产精品人成电影在线观看| 中文字幕欧美日韩| 亚洲欧美一区二区三区四区| 国产suv精品一区二区| 久久精品国产v日韩v亚洲| 日韩精品中文字幕久久臀| 国产精品久久一| 国内精品久久影院| 久久久久久一区二区三区| 久久久女女女女999久久| 美女视频久久黄| 久热国产精品视频| 91精品国产综合久久久久久久久| 久久综合免费视频|