UIPickerView:在展开可选值时意外发现 nil
Posted
技术标签:
【中文标题】UIPickerView:在展开可选值时意外发现 nil【英文标题】:UIPickerView: unexpectedly found nil while unwrapping an Optional value 【发布时间】:2014-08-14 17:26:58 【问题描述】:我正在尝试为我的应用程序实现 UIPickerView。虽然我没有遇到错误,但当我运行应用程序时,它会崩溃并出现以下错误:
在展开可选值时意外发现 nil
class LobbyViewController: UIViewController
@IBOutlet weak var textfield: UITextField!
var picker: UIPickerView!
var radius = [2, 5, 10, 15, 20, 25, 50, 100, 1000]
override func viewDidLoad()
super.viewDidLoad()
picker.dataSource = self
picker.delegate = self
self.textfield.inputView = picker
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
extension LobbyViewController: UIPickerViewDataSource
func numberOfComponentsInPickerView(picker: UIPickerView!) -> Int
return 1
func pickerView(picker: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
return radius.count
extension LobbyViewController: UIPickerViewDelegate
func pickerView(umkreisPicker: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String
return radius[row]
希望你能帮助我!
【问题讨论】:
What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?的可能重复 【参考方案1】:您永远不会创建您的 UIPickerView
实例 - picker
应该标记为 @IBOutlet
并连接到您的故事板中,或者您应该在设置委托和数据源之前创建它。
【讨论】:
【参考方案2】:关于这发生在哪一行的任何提示?我的猜测是picker.dataSource = self
您没有将此设置为插座,并且根据您共享的内容,它从未在任何地方初始化。
编辑以征求意见
所以你需要初始化选择器,你可以像初始化大多数东西一样使用它的标准 init() 方法。然后你需要告诉文本字段它的输入视图应该是选择器。
尝试将以下内容添加到viewDidLoad()
picker = UIPickerView()
textField.inputView = picker
【讨论】:
是的。它的“picker.dataSource = self”行。当在应用程序中编辑文本字段时,它应该弹出,所以我没有将它连接到插座。我该如何初始化它。在纪录片中没有找到初始化器的东西。感谢您的帮助! 已更新以解决您的评论以上是关于UIPickerView:在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章
prepareForSegue 出错“”在展开可选值时意外发现 nil“”
Alamofire 平面错误:在展开可选值时意外发现 nil