空协议声明

时间:2012-04-19 09:13:44

标签: objective-c protocols

以下协议没有任何方法。有可能像这样使用它吗?如果我们声明一个空协议会发生什么?

@class CircularPickerView;
@protocol CircularPickerViewDataSource <UIPickerViewDataSource>
@end

1 个答案:

答案 0 :(得分:1)

  

是否可以像这样使用它?

  

如果我们宣布一个空协议会怎样?

严格来说,这不是空的 - 它也是UIPickerViewDataSource。与子类化类似,您可以将CircularPickerViewDataSource作为UIPickerViewDataSource传递。您可能还希望它采用UIPickerViewDataSource的方法,如果您没有实现所需的接口,您将收到警告。它可以作为文档/意图,平台兼容性,也可以作为未来扩展的占位符。

声明没有必需或可选方法的协议只是指定采用者不需要在其实现中定义任何方法。由于这也是UIPickerViewDataSource,情况并非如此。