我想知道是否需要声明协议。需要在目标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 ..
它运行没有任何问题相同的不省略代码。 –
委托方法*将被调用,但是当设置委托时编译器无法检查所述对象是否符合所需的协议,您将从编译器中收到警告。 –