我是新手,我需要一些帮助来集成组件AKPickerView(用Objective C编写)。组件链接:https : //github.com/Akkyie/AKPickerView
但是我没有成功,因为有一个协议:AKPickerViewDelegate在Swift中不起作用:
@class AKPickerView;
@protocol AKPickerViewDelegate <NSObject>
@optional
- (NSString *)pickerView:(AKPickerView *)pickerView titleForItem:(NSInteger)item;
- (NSUInteger)numberOfItemsInPickerView:(AKPickerView *)pickerView;
- (void)pickerView:(AKPickerView *)pickerView didSelectItem:(NSInteger)item;
@end
在Swift中,我编写了以下代码:
class ViewController: UIViewController, AKPickerViewDelegate {
var pickerView : AKPickerView = AKPickerView()
var titles : NSArray = ["Janeiro","Fevereiro","Março","Abril","Maio"]
...
我暗示了这种方法:
func numberOfItemsInPickerView(pickerView : AKPickerView!) -> Int{
return self.titles.count
}
func pickerView(pickerView: AKPickerView, titleForItem item : NSInteger) -> NSString {
return self.titles[item] as NSString
}
但是编译器显示此错误:
Type 'ViewController' does not conform to protocol 'AKPickerViewDelegate'
感谢一些帮助,谢谢!
正如我在链接AKPickerViewDelegate
中看到的那样,需要使用方法。
@protocol AKPickerViewDelegate <NSObject>
@required
- (NSUInteger)numberOfItemsInPickerView:(AKPickerView *)pickerView;
- (NSString *)pickerView:(AKPickerView *)pickerView titleForItem:(NSInteger)item;
@optional
- (void)pickerView:(AKPickerView *)pickerView didSelectItem:(NSInteger)item;
@end
因此,您需要快速实现它们。按如下所示实施这些方法,它将消除错误
func numberOfItemsInPickerView(pickerView: AKPickerView!) -> UInt {
return self.titles.count
}
func pickerView(pickerView: AKPickerView!, titleForItem item: Int) -> String! {
return self.titles[item]
}
请注意,您还需要在桥接标题中添加它们#import "AKPickerView.h"
。Swifter-Bridging-Header.h
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句