如果我有一个协议(比如UIPickerViewDataSource)并且我实现了它所需的方法,我是否需要在我的类的头文件中声明这些方法?
目前我没有这样做,我得到一个不完整实施的警告(尽管一切正常)。如果我确实添加了所需的方法,那么我就不会收到这样的警告:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
这是正确的行为吗?是否真的有必要在我的类的头文件中添加所需协议方法的声明?
答案 0 :(得分:4)
不,你没有。声明该类实现该协议并实现这些方法就足够了。不过,您仍然可以在标题中声明它们以用于文档目的。
答案 1 :(得分:3)
正确的方法是声明您的类实现协议。例如,如果您的类名为LordSandwichViewController
,那么您的类接口必须如下所示:
@interface LordSandwichViewController : UIViewController <UIPickerViewDataSource> {
{
}
因此,您不要在类接口中声明协议方法,只声明协议。
答案 2 :(得分:0)
不完整的实施警告告诉您,您没有实施所有必需的方法:
看看它期望的方法,并实现它们。