Ios 应用程序在使用UIPickerView时崩溃

Ios 应用程序在使用UIPickerView时崩溃,ios,swift,uipickerview,Ios,Swift,Uipickerview,我有一个带有两个UIPickerView的应用程序,它们可以出现在UITableViewCell中:numberPicker和timePicker。它们从来不会同时出现在屏幕上,并且声明如下: @IBOutlet weak var numberPicker: UIPickerView! @IBOutlet weak var timePicker: UIPickerView! 根据所使用的代理和数据源,将在awakeFromNib中设置代理和数据源: override func awakeFro

我有一个带有两个UIPickerView的应用程序,它们可以出现在UITableViewCell中:numberPicker和timePicker。它们从来不会同时出现在屏幕上,并且声明如下:

@IBOutlet weak var numberPicker: UIPickerView!
@IBOutlet weak var timePicker: UIPickerView!
根据所使用的代理和数据源,将在awakeFromNib中设置代理和数据源:

override func awakeFromNib() {
    super.awakeFromNib()

    if timePicker != nil {
        timePicker.delegate = self
        timePicker.dataSource = self
    }

    if numberPicker != nil {
        numberPicker.delegate = self
        numberPicker.dataSource = self
    }
}
如果numberPicker是我试图展示的选择器,那么应用程序运行时不会出现问题。如果timePicker是我试图展示的选择器,那么应用程序就会崩溃。设置断点后,该行将崩溃:

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {

    if pickerView == numberPicker {  <----- CRASHES HERE ----->
        return 1
    } else {
        return 2
    }
}
func numberOfComponentsInPickerView(pickerView:UIPickerView)->Int{
如果pickerView==numberPicker{
返回1
}否则{
返回2
}
}
请记住,当numberPicker试图出现在屏幕上时,代码会工作,当timePicker试图出现时,代码会崩溃。为什么会发生这种情况?提前感谢您的帮助

更新 下面是错误的屏幕截图

更新#2

我很抱歉没有早点把这个包括进去。我的日志窗口被最小化,我忽略了它,没有注意到。错误是:


致命错误:在您的委托/datarouce中展开可选值时意外发现nil,您将2个组件返回给计时器选择器,但您实际提供了2个组件吗?更多的代码将有助于显示崩溃report@SeanLintern88您还需要什么代码?除了剩下的uipickerview委托方法外,这几乎就是所有方法。我很有可能也要重构它们,因为我在所有它们中都使用了类似的if语句,但这是崩溃的第一行,因此包含它们似乎不太重要。@Anbu.Karthik是的,让我为您获取崩溃报告的屏幕截图。您需要复制粘贴日志而不是崩溃的屏幕截图