我想知道是否需要聲明協議。需要在目標c中聲明協議嗎?
因此,我刪除了協議聲明代碼的一部分。
我認爲它會發生編譯錯誤。
但是,一直運行沒有任何問題。
爲什麼需要協議聲明部分?
#import <UIKit/UIKit.h>
@interface SingleComponentPickerViewController : UIViewController {
// <UIPickerViewDelegate, UIPickerViewDataSource> { ==> protocol declare part
IBOutlet UIPickerView *singlePicker;
NSArray *pickerData;
}
@property (nonatomic, retain) UIPickerView *singlePicker;
@property (nonatomic, retain) NSArray *pickerData;
- (IBAction)buttonPressed:(id)sender;
@end
<UIPickerViewDelegate, UIPickerViewDataSource> <= this is what feature?
When omit this, excute without any problem.
下面是圖片編譯後的畫面。
它沒有問題。
,沒有任何問題EXCUTE ..
它運行沒有任何問題相同的不省略代碼。 –
委託方法*將被調用,但是當設置委託時編譯器無法檢查所述對象是否符合所需的協議,您將從編譯器中收到警告。 –