簡體   English   中英

方法聲明協議?

[英]Protocol on method declaration?

我開始使用Nimbus框架,並且第一次遇到這種語法。 看起來他們在方法聲明中然后在聲明變量時使用某種協議。 我僅在類名之后看到頭文件中使用的協議,因此這對我來說是全新的。

- (UIView<NIPagingScrollViewPage>*)pagingScrollView:(NIPagingScrollView *)pagingScrollView pageViewForIndex:(NSInteger)pageIndex {

也:

UIView<NIPagingScrollViewPage>* pageView = nil;

這到底是什么意思? 他們為什么使用這種格式?

該聲明確保返回的UIView符合NIPagingScrollViewPage協議。 如果方法嘗試返回未聲明符合的對象,則編譯器將發出警告。

該語法的更常見用法是委托,因為您將允許所有符合協議的類都作為委托,因此可以使用語法來確保該類符合協議。

-(void)setDelegate:(id<SampleDelegate>)del //Makes sure that del conforms to the protocol SampleDelegate, the compiler will emit a warning

這只是聲明它正在對該協議進行確認的方式。 否則將顯示警告。 然后,您必須使用id。

因此,使用(datatype<protocol>*)variableName始終是一個好習慣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM