Swift无法识别的选择器发送到自定义类中的实例

时间:2015-05-15 22:22:44

标签: ios uitableview swift selector uipickerview

我一直得到一个“' - [UITableView numberOfComponentsInPickerView:]:无法识别的选择器发送到实例”错误引用我的一个自定义UITableViewCell类中的方法,我似乎无法弄清楚原因。我搜索了堆栈溢出但无法找到与我的情况相关的答案。有任何想法吗?谢谢!

public class PickerTableViewCell:UITableViewCell, UIPickerViewDataSource, UIPickerViewDelegate {

var pickerData:[Array<Int>] = []

@IBOutlet weak var picker: UIPickerView!

public func configure(data:[Array<Int>]) {
    pickerData = data
}

// Picker functions
public func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
    return pickerData.count
}
public func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return pickerData[component].count
}
public func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
    return String(pickerData[component][row])
}

}

1 个答案:

答案 0 :(得分:1)

如果查看错误消息,您会看到在numberOfComponentsInPickerView:实例上调用了方法UITableView

所以你问的问题是“为什么要在UITableView上调用该方法?”

有问题的方法是一个选择器视图数据源方法,这意味着你在某个地方指定了一个UITableView作为选择器视图的数据源,这样当显示选择器视图时,方法调用是针对一个类({{ 1}})没有实现委托方法。

在您的情况下,这是Interface Builder中的一个简单的拖放错误。