簡體   English   中英

在Objective-C中實現協議方法

[英]implementing protocol methods in objective-c

如果我有一個協議(例如UIPickerViewDataSource)並且實現了所需的方法,是否需要在類的頭文件中聲明這些方法?

目前,我還沒有這樣做,但是我收到了實施不完整的警告(盡管一切正常)。 如果我確實在中添加了必需的方法,那么我不會得到這樣的警告:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

這是正確的行為嗎? 確實需要在類的頭文件中添加必需協議方法的聲明嗎?

不,你沒有。 聲明該類實現了該協議並實現了方法就足夠了。 但是,出於文檔目的,您仍然可以在標頭中聲明它們。

正確的方法是聲明您的類已實現該協議。 例如,如果您的類稱為LordSandwichViewController ,則您的類接口必須如下所示:

@interface LordSandwichViewController : UIViewController <UIPickerViewDataSource> {
{
}

因此,您不必在類接口中聲明協議方法,而只能聲明協議。

不完整的實施警告會告訴您您沒有實現以下所有必需的方法:

  1. 定義標題。
  2. 聲明您要遵循的協議所需的方法。

查看期望的方法,然后實現這些方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM