我创建了UIPickerView的子类
@interface ClockPicker : UIPickerView
@property (strong, nonatomic) NSArray *manyNumbers;
@end
并将其导入我的viewController并像这样实例化
#import "clockPicker.h"
@interface sfViewController ()
@property (strong, nonatomic) ClockPicker *clockPicker;
@end
@implementation sfViewController
-(ClockPicker *)clockPIcker
{
if (!_clockPicker) _clockPicker = [[ClockPicker alloc] initWithFrame:CGRectMake(0, 200, 320, 200)];
return _clockPicker;
}
UIPickerView有几种必须实现的协议方法,所以我必须说出委托和数据源是什么。在viewController的viewDidLoad中,我可以这样做,使viewController成为委托和数据源
clockPickerView.delegate = self;
clockPickerView.dataSource = self;
但是,我想将导入的UIPickerView类设置为委托和数据源。如果我这样做
clockPickerView.delegate = ClockPicker;
clockPickerView.dataSource = ClockPicker;
我收到错误unexpected interface name ClockPicker expected expression
。
如何将导入文件中的类设置为委托和数据源,以便我可以在该文件中而不是在viewController中设置所需的方法?
答案 0 :(得分:2)
您需要将ClockPicker
的实例分配给delegate
和dataSource
(不是类本身)。
您获得的错误:
意外的接口名称ClockPicker期望表达式
...是说编译器期望赋值的右侧是表达式,但是你给了它一个接口的名称,这是一个错误。