Ios 应用程序在使用UIPickerView时崩溃
我有一个带有两个UIPickerView的应用程序,它们可以出现在UITableViewCell中:numberPicker和timePicker。它们从来不会同时出现在屏幕上,并且声明如下: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
@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是的,让我为您获取崩溃报告的屏幕截图。您需要复制粘贴日志而不是崩溃的屏幕截图