Swift 发送到自定义实例的无法识别的选择器 class
Swift unrecognized selector sent to instance in custom class
我不断收到“'-[UITableView numberOfComponentsInPickerView:]: unrecognized selector sent to instance”错误,引用了我的自定义 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])
}
}
如果您查看错误消息,您会发现在 UITableView
实例上调用了方法 numberOfComponentsInPickerView:
。
所以你问这个问题"why would that method be invoked on a UITableView
?"
有问题的方法是一个选择器视图数据源方法,所以这意味着你在某个地方指定了一个 UITableView 作为选择器视图的数据源,这样当显示选择器视图时,方法调用是针对 class (UITableView
) 尚未实现委托方法。
在您的情况下,这是 Interface Builder 中的简单拖放错误。
我不断收到“'-[UITableView numberOfComponentsInPickerView:]: unrecognized selector sent to instance”错误,引用了我的自定义 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])
}
}
如果您查看错误消息,您会发现在 UITableView
实例上调用了方法 numberOfComponentsInPickerView:
。
所以你问这个问题"why would that method be invoked on a UITableView
?"
有问题的方法是一个选择器视图数据源方法,所以这意味着你在某个地方指定了一个 UITableView 作为选择器视图的数据源,这样当显示选择器视图时,方法调用是针对 class (UITableView
) 尚未实现委托方法。
在您的情况下,这是 Interface Builder 中的简单拖放错误。