Swift - UIPickerView崩溃应用程序没有错误

时间:2015-07-09 12:06:10

标签: ios swift uitableview uipickerview

我已经定义了一个自定义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
  }

}

UPDATE:

收到的错误代码是:

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'

1 个答案:

答案 0 :(得分:3)

您的项目崩溃了,因为您已经分配了PickerView的错误委托和数据源。

请删除该内容并将其添加到自定义单元格类的awakeFromNib方法中:

override func awakeFromNib() {
    super.awakeFromNib()

    pickerView.dataSource = self
    pickerView.delegate = self

}