UIPickerView:展开可选值时意外发现nil [英] UIPickerView: unexpectedly found nil while unwrapping an Optional value

查看:80
本文介绍了UIPickerView:展开可选值时意外发现nil的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将UIPickerView实现到我的App中。虽然我没有收到错误,但当我运行应用程序时,它崩溃了,错误如下:

展开可选值时意外发现空

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]
    }

}

希望您能帮助我!

推荐答案

有关此操作发生在哪行的任何提示?我的猜测是picker.dataSource = self

您没有将此设置为插座,并且它永远不会根据您共享的内容在任何地方进行初始化。

编辑备注

所以您需要初始化选取器,您可以像初始化大多数事情一样,使用它的标准init()方法来完成这项工作。然后,您需要告诉文本字段它的输入视图应该是选取器。

尝试将以下内容添加到viewDidLoad()

picker = UIPickerView()
textField.inputView = picker

这篇关于UIPickerView:展开可选值时意外发现nil的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆