[英]implementing protocol methods in objective-c
如果我有一個協議(例如UIPickerViewDataSource)並且實現了所需的方法,是否需要在類的頭文件中聲明這些方法?
目前,我還沒有這樣做,但是我收到了實施不完整的警告(盡管一切正常)。 如果我確實在中添加了必需的方法,那么我不會得到這樣的警告:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
這是正確的行為嗎? 確實需要在類的頭文件中添加必需協議方法的聲明嗎?
不,你沒有。 聲明該類實現了該協議並實現了方法就足夠了。 但是,出於文檔目的,您仍然可以在標頭中聲明它們。
正確的方法是聲明您的類已實現該協議。 例如,如果您的類稱為LordSandwichViewController
,則您的類接口必須如下所示:
@interface LordSandwichViewController : UIViewController <UIPickerViewDataSource> {
{
}
因此,您不必在類接口中聲明協議方法,而只能聲明協議。
不完整的實施警告會告訴您您沒有實現以下所有必需的方法:
查看期望的方法,然后實現這些方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.