我是初学Swift的人,需要帮助将一个Objective-C编写的组件AKPickerView集成到我的项目中。
组件链接: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'
感谢您的帮助。 谢谢!
NSUInteger
,但你返回Int
(不好),而接受的位置提供了NSInteger
(很好)。因此存在一些差异。你可以尝试返回NSUInteger
或者UInt
吗? - Craig Otis