ios - 将导入的类设置为委托(delegate)

标签 ios objective-c

我创建了 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实例分配给delegatedataSource(不是类本身) .

你得到的错误:

unexpected interface name ClockPicker expected expression

...是说编译器期望赋值的右侧是一个表达式,但你给了它一个接口(interface)的名称,这是一个错误。

关于ios - 将导入的类设置为委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23200370/

相关文章:

ios - 推送到 tabBar 时隐藏 View - swift

objective-c - 检测/修复 NSConnection 故障

objective-c - 在应用程序中禁用 Siri

objective-c - 如何转到 UITableView 中的下一个单元格(详细信息 View )?

ios - NSNumberFormatter.numberFromString() 为 ar-SA 语言环境返回 nil

ios - Swift 中的 Google SingIn 获取个人资料信息

ios - 实时检查网络可达性

ios - 如何在 iOS 中获取用户设备 ID?

objective-c - 在 nsstring 中查找和替换所有内容

ios - POST请求响应?