我是新的迅速,我需要一些帮助,以整合 组件AKPickerView(写在Objective C中)。组件的 链接:https://github.com/Akkyie/AKPickerView整合目标C协议与斯威夫特
但我没有成功,因为有一个协议:AKPickerViewDelegate不斯威夫特工作:
@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
在斯威夫特我写了这个代码:
class ViewController: UIViewController, AKPickerViewDelegate {
var pickerView : AKPickerView = AKPickerView()
var titles : NSArray = ["Janeiro","Fevereiro","Março","Abril","Maio"]
...
我implimented这个方法:
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'(good)的地方接受'NSInteger'。所以这里有一点差异。你可以尝试返回'NSUInteger'或'UInt'吗? –
是@CraigOtis!你是对的!这是我的错误!感谢帮助! – Weles