使用Swift集成Objective C协议

我是swift的新手,我需要一些帮助来集成一个组件AKPickerView(用Objective C编写)。 组件链接: https : //github.com/Akkyie/AKPickerView

但我没有成功,因为有一个协议: AKPickerViewDelegate在Swift中不起作用:

@class AKPickerView; @protocol AKPickerViewDelegate  @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看到的AKPickerViewDelegate需要方法。

 @protocol AKPickerViewDelegate  @required - (NSUInteger)numberOfItemsInPickerView:(AKPickerView *)pickerView; - (NSString *)pickerView:(AKPickerView *)pickerView titleForItem:(NSInteger)item; @optional - (void)pickerView:(AKPickerView *)pickerView didSelectItem:(NSInteger)item; @end 

所以在swift中你需要实现它们。如下所示实现这些方法,它将删除错误

 func numberOfItemsInPickerView(pickerView: AKPickerView!) -> UInt { return self.titles.count } func pickerView(pickerView: AKPickerView!, titleForItem item: Int) -> String! { return self.titles[item] } 

注意你还需要在Bridging Header中添加它们。 #import "AKPickerView.h"Swifter-Bridging-Header.h编写#import "AKPickerView.h"