2012-04-19 102 views
1

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

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

请用你正在谈论的语言标记问题。这是Obj-C吗? C#?这当然不是“html”或“title”。 – deceze 2012-04-19 09:34:51

+0

你不知道@protocol属于目标c吗? – 2012-04-20 07:12:46

+2

不需要自大。我知道Obj-C具有'@ protocol',但我不知道其他语言可能具有该关键字。再次,把它放在标签中,否则知道Obj-C并能回答你的问题的人不会看到你的问题。 – deceze 2012-04-20 07:23:44

回答

1

是否可以这样使用它?

是的。

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

严格来说,这不是空的 - 它也是一个UIPickerViewDataSource。与子类相似,您可以将CircularPickerViewDataSource作为UIPickerViewDataSource。您也可能期望它采用UIPickerViewDataSource的方法,如果您未实现所需的界面,您将收到警告。它可以用作文档/意图,平台兼容性,或者它可以是未来扩展的占位符。

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

+0

Thankyou它解决了我的问题 – 2012-04-23 12:19:24

+0

@kollinarasimhaiahnarasimhaiah不客气 – justin 2012-04-23 13:49:53