我已经定义了一个自定义UITableViewCell,并在其中安装了UIPickerView。我已经连接了我的IBOutlet,以及dataSource和delegate。但是,无论何时显示单元格,应用程序崩溃(控制台窗口中没有任何错误)。知道发生了什么事吗?下面是自定义UITableViewCell的代码...
import UIKit
class OptionPickerTableViewCell: UITableViewCell, UIPickerViewDataSource, UIPickerViewDelegate {
// MARK: - Variables
let height: CGFloat = 160
var options: [String] = [String]()
// MARK: - IBOutlets
@IBOutlet weak var pickerView: UIPickerView!
// MARK: Functions
func setCell(options: [String]) {
self.options = options
}
// MARK: - UIPickerViewDelegate
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return options[row]
}
// MARK: - UIPickerViewDataSource
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return options.count
}
}
收到的错误代码是:
Getting the errors: 2015-07-09 13:21:39.924 Gym Assist[12610:473411] -[NSObject numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7fa62c828ad0 2015-07-09 13:21:39.931 Gym Assist[12610:473411] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSObject numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x7fa62c828ad0'
答案 0 :(得分:3)
您的项目崩溃了,因为您已经分配了PickerView的错误委托和数据源。
请删除该内容并将其添加到自定义单元格类的awakeFromNib
方法中:
override func awakeFromNib() {
super.awakeFromNib()
pickerView.dataSource = self
pickerView.delegate = self
}