成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Objective-C動態(tài)特性之protocol

移動開發(fā) iOS
Protocol在具體的使用過程中基本上采用了“Delegation”模式,即采用Protocol定義方法,然后不同的類使用不同的具體實現(xiàn),從而完成某個行為的多態(tài)。 在iOS的SDK類庫中大量使用了這樣的Delegate的模式,比方說UITableViewDataSource定義了Table View如何使用數(shù)據(jù)源的一系列方法,開發(fā)者需要使用Table View時,就需要實現(xiàn)這一系列方法,然后把自己定義的Table View delegate給當前對象。這樣,不同界面的Table View就可以基于自身對象的實現(xiàn)做不同的展現(xiàn)。

在Object-C中,Protocol被用來定義一組獨立于具體類的屬性和方法,其不具體實現(xiàn)這些方法,任何類都可以實現(xiàn)Protocol,Protocol可以繼承另一個Protocol,從特征上看Protocol的作用類似于Java世界的接口。

Protocol在具體的使用過程中基本上采用了“Delegation”模式,即采用Protocol定義方法,然后不同的類使用不同的具體實現(xiàn),從而完成某個行為的多態(tài)。 在iOS的SDK類庫中大量使用了這樣的Delegate的模式,比方說UITableViewDataSource定義了Table View如何使用數(shù)據(jù)源的一系列方法,開發(fā)者需要使用Table View時,就需要實現(xiàn)這一系列方法,然后把自己定義的Table View delegate給當前對象。這樣,不同界面的Table View就可以基于自身對象的實現(xiàn)做不同的展現(xiàn)。

定義protocol非常簡單,如下:

Object-c代碼

  1. @protocol MyProtocol <NSObject>  
  2. // pst of methods and properties  
  3. [url=home.php?mod=space&uid=10695]@END[/url]  

除此之外,protocol定義時,還支持2個關鍵字,@required和@optional。顧名思義:凡是在@required后面的方法,實現(xiàn)該protocol的類必須實現(xiàn),optional后面的方法可以不實現(xiàn)。默認所有的方法和屬性都是@required的。

Object-c代碼

  1. @protocol MyProtocol <NSObject> 
  2. // pst of methods and properties 
  3. @required 
  4. // pst of methods and properties 
  5. @optional 
  6. // pst of methods and properties 
  7. @end 

另外,protocol還可以繼承另一個protocol。

Object-c代碼

  1. @protocol A 
  2. -(void)methodA; 
  3. @end 
  4. @protocol B <A> 
  5. -(void)methodB; 
  6. @end 

實現(xiàn)protocol也非常簡單, 在Object-C中,一個類要使用某個protocol,只需要在類定義時加上‘<ProtocolName,...>’就行了。

Object-c代碼

  1. @interface MyClass : NSObject <MyProtocol, AnotherProtocol, YetAnotherProtocol> 
  2. ... 
  3. <A href="mailto:.@end">@end</A> 

最后,和Java中的接口一樣,一旦某個對象實現(xiàn)了某個protocol, 那么就可以用該protocol的指針來指向該對象。這就是為什么當當前對象實現(xiàn)了UITableViewDataSource protocol,就可以把Table View的delegate賦值給當前對象。 在UITableView的代碼中,dataSource屬性的定義是這個樣子的。

  1. Object-c代碼 
  2. .... 
  3. id <UITableViewDataSource> _dataSource; 
  4. &helpp; 
責任編輯:閆佳明 來源: apkbus
相關推薦

2014-11-25 10:18:17

Objective-C

2014-08-05 13:09:34

Objective-C動態(tài)特性

2013-05-02 10:51:17

iOS開發(fā)Objective-C@property

2015-11-02 10:13:41

iOSObjective-C語法

2011-08-03 16:22:05

Objective-C CodeBlocks

2011-08-04 13:55:10

Cocoa Objective- 文件

2011-08-10 18:07:29

Objective-C反射

2011-08-22 09:34:50

Objective-C多態(tài)動態(tài)類型

2013-06-20 10:40:32

Objective-C實現(xiàn)截圖

2013-03-27 12:54:00

iOS開發(fā)Objective-C

2011-05-11 11:20:26

Objective-C

2011-05-11 15:58:34

Objective-C

2011-07-29 15:47:21

iPhone開發(fā) Objective- C

2014-09-26 09:49:48

SwiftObjective-C

2011-07-28 15:11:23

iOS Objective-

2011-08-09 15:53:28

2014-12-12 14:57:11

Objective-C封裝

2011-05-11 13:54:08

Objective-C

2011-05-11 15:45:50

內(nèi)存管理Objective-C

2011-08-02 13:16:36

Objective-C 語法 函數(shù)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级毛片观看 | 成人免费视频 | 日韩欧美国产一区二区三区 | 成年人黄色小视频 | 欧美视频xxx | 一级毛片免费视频观看 | 无码国模国产在线观看 | 亚洲一区二区三区在线免费观看 | 国产视频福利一区 | 色婷婷av久久久久久久 | 欧美日韩精品国产 | 免费成人高清在线视频 | 精品视频久久久 | 精品一区在线免费观看 | 成人免费大片黄在线播放 | 国产精品久久久久久久久久久久久久 | 日韩喷潮 | 国产精品日韩一区 | 久久精品亚洲欧美日韩精品中文字幕 | 免费三级网 | 视频一区 亚洲 | 成人a视频在线观看 | 亚洲精品一区二区三区四区高清 | 久久一区二| 欧美日韩中文字幕 | 亚洲精品白浆高清久久久久久 | 夜夜艹 | 国产精品综合网 | 久久精品久久久久久 | 91免费在线播放 | 少妇性l交大片免费一 | 国产视频2021 | 超碰成人免费 | 伦理片97| 亚洲精品久久久久久久久久久久久 | 亚洲精品一区二区三区 | 亚洲色欲色欲www | 久久99网 | 伊色综合久久之综合久久 | 久久99精品国产 | 成人在线视频网 |