我开始使用Nimbus框架,我刚刚第一次遇到这种语法。看起来他们在方法声明中使用某种协议,然后在声明变量时。我只看到了类名后面的头文件中使用的协议,所以这对我来说是全新的。
- (UIView<NIPagingScrollViewPage>*)pagingScrollView:(NIPagingScrollView *)pagingScrollView pageViewForIndex:(NSInteger)pageIndex {
此外:
UIView<NIPagingScrollViewPage>* pageView = nil;
这究竟是什么意思?他们为什么要使用这种格式?
答案 0 :(得分:1)
该声明确保返回的UIView符合NIPagingScrollViewPage协议。如果方法尝试返回未声明符合的对象,编译器将发出警告。
该语法的更常见用法是委托,因为您将允许符合协议的任何类作为委托,因此使用该语法来确保该类符合协议。
-(void)setDelegate:(id<SampleDelegate>)del //Makes sure that del conforms to the protocol SampleDelegate, the compiler will emit a warning
答案 1 :(得分:0)
这只是声明它正在确认该协议的方式。否则会显示警告。然后你必须使用id。
因此,使用(datatype<protocol>*)variableName