【发布时间】:2015-09-17 07:49:30
【问题描述】:
我对 swift 很陌生(我通常使用 Java 和 C++ 编写代码),我正在构建我的第一个 ios 应用程序。 在这个应用程序中,我正在尝试创建一个选择器视图,问题是当我尝试将标签点的初始值设置为选择器视图(数组)中的第一项时,它会弹出错误
"致命错误:在展开 Optional 时意外发现 nil 价值”
这是我正在工作的代码
class ViewController: UIViewController, UIPickerViewDelegate{
@IBOutlet var usertypeLabel: UILabel!
@IBOutlet var Picker: UIPickerView!
var usertype_array = ["patient","nurse"]
//var usertype: String!
override func viewDidLoad() {
// Do any additional setup after loading the view, typically from a nib.
super.viewDidLoad()
usertypeLabel.text = usertype_array[0] //THIS IS WHERE THE ERROR OCCURS
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int{
return usertype_array.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!{
return usertype_array[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
var rowselected = usertype_array[row]
usertypeLabel.text = rowselected
}
}
知道为什么会发生错误吗?请注意,如果我删除那行代码,它仍然会运行。谢谢。
【问题讨论】:
-
贴出来的代码没有错。我认为错误在其他地方。即使是行 usertypeLabel.text = usertype_array[0] 也应该可以正常运行。
-
我猜你没有将你的
IBOutlet与故事板中的标签联系起来 -
您是否在故事板中创建了标签并将其连接到 IBOutlet?
-
我控制将情节提要中的标签拖动到 Viewcontroler.swift 中的代码。我是否错过了将其连接到其他地方的任何步骤?