我创建了 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 有几个必须实现的协议(protocol)方法,所以我必须说一下委托(delegate)和数据源是什么。在 viewController 的 viewDidLoad 中,我可以这样做以使 viewController 成为委托(delegate)和数据源
clockPickerView.delegate = self;
clockPickerView.dataSource = self;
但是,我想将导入的 UIPickerView 类设置为委托(delegate)和数据源。如果我这样做
clockPickerView.delegate = ClockPicker;
clockPickerView.dataSource = ClockPicker;
我得到一个错误unexpected interface name ClockPicker expected expression
。
我如何将导入文件中的类设置为委托(delegate)和数据源,以便我可以在该文件中而不是在 viewController 中设置所需的方法?
最佳答案
您需要将 ClockPicker
的实例分配给delegate
和dataSource
(不是类本身) .
你得到的错误:
unexpected interface name ClockPicker expected expression
...是说编译器期望赋值的右侧是一个表达式,但你给了它一个接口(interface)的名称,这是一个错误。
关于ios - 将导入的类设置为委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23200370/