2012-12-02 118 views
1

我開始使用Nimbus框架,而且我第一次碰到了這個語法。看起來他們在方法聲明中使用某種協議,然後在聲明變量時使用。我只在類名後看到頭文件中使用的協議,所以這對我來說是全新的。方法聲明的協議?

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

另外:

UIView<NIPagingScrollViewPage>* pageView = nil; 

究竟是什麼意思?他們爲什麼使用這種格式?

回答

1

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

該語法的更常見用法是委託,因爲您可以允許符合協議的任何類作爲委託,以便使用語法來確保類符合協議。

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

這只是聲明它確認該協議的方式。否則會顯示警告。然後你必須使用ID。

因此,使用(datatype<protocol>*)variableName