1

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

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

1 回答 1

1

可以这样使用吗?

是的。

如果我们声明一个空协议会发生什么?

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

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

于 2012-04-20T07:39:34.873 回答