I wonder if it is needed to declare the protocol.
So, I delete a part that protocol declare code.
I thought that it will happen compile error.
but, Has been running without any problems.
Why need protocol declare part?
#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.
Below is picture After compiled screen.
It has no issues.
And excute without any problems..

You are not declaring the Protocol here, you are merely specifying that the your class
SingleComponentPickerViewControllerfollows the protocols you specify.The protocol needs to be specified if you are using any components and are setting you
SingleComponentPickerViewControlleras their delegate. This is so the compiler knows that your class follows that specific protocol and you have implemented any required protocol methods.