2015-02-11 116 views
0

我是新來的目標c。我需要幫助瞭解以下代碼:需要幫助理解目標c界面聲明

[email protected] MyClassViewController : BaseViewController<SelectionReceiver,SourceState> 

MyClassViewController和BaseViewController都是接口。 SelectionReceiver協議 SourceState是一個接口

什麼意思<是什麼意思SelectionReceiver,SourceState>? 這是否意味着多重繼承? 協議和接口有什麼區別?

謝謝。

+0

也許你來自Java之類的東西。在ObjC中,「interface」是一個類定義,「protocol」更像是一個Java接口。它是單一繼承(來自BaseViewController),但也符合這兩種協議。 – 2015-02-11 19:28:20

+0

謝謝。本Zotto。 – n179911 2015-02-11 19:59:32

+0

如果協議是像一個Java接口,從https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/index.html,是的UITableViewDelegate一個協議,爲什麼它是「符合」 UIScrollViewDelegate」協議?它是否像UITableViewDelegate接口繼承UIScrollViewDelegate接口(用Java術語說)? – n179911 2015-02-12 01:00:48

回答

1

繼承允許我們根據另一個類定義一個類,這使得創建和維護應用程序變得更加容易。這也提供了重用代碼功能和快速實施時間的機會。

的協議,相比之下,用於聲明是獨立於任何特定的類,並且比正常的類接口更靈活的方法和屬性

一個簡單的例子是一個網絡的URL處理類,它會有一個像processCompleted委託方法這樣的方法,當網絡URL抓取操作結束後,該方法會提示調用類。