gpt4 book ai didi

objective-c - 关于方法声明的协议(protocol)?

转载 作者:行者123 更新时间:2023-11-29 13:23:53 25 4
gpt4 key购买 nike

我开始使用 Nimbus 框架,而且我还是第一次遇到这种语法。看起来他们在方法声明中使用了某种协议(protocol),然后在声明变量时使用了某种协议(protocol)。我只看到在类名之后的头文件中使用的协议(protocol),所以这对我来说是全新的。

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

还有:

UIView<NIPagingScrollViewPage>* pageView = nil;

这到底是什么意思?他们为什么使用这种格式?

最佳答案

该声明确保返回的 UIView 符合 NIPagingScrollViewPage 协议(protocol)。如果该方法试图返回一个未声明为符合的对象,编译器将发出警告。

该语法更常见的用法是委托(delegate),因为您将允许符合协议(protocol)的任何类成为委托(delegate),因此该语法用于确保类符合协议(protocol)。

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

关于objective-c - 关于方法声明的协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com