我创建了一个分段控件并编译了代码,但是当我点击一个新索引时,我得到:致命错误:在解开一个Optional值时意外地发现了nil。它说它是一个exe_bad_instruction并突出显示切换线。 我错过了什么或者我做错了什么?
@IBOutlet weak var segmentedControl: UISegmentedControl!
@IBOutlet weak var textLabel: UILabel!
@IBAction func indexChanged(sender: UISegmentedControl?) {
switch segmentedControl.selectedSegmentIndex
{
case 0:
textLabel.text = "First Segment Selected";
case 1:
textLabel.text = "Second Segment Selected";
default:
break;
}
}
答案 0 :(得分:1)
将您的switch
行更改为此(我添加了问号):
switch segmentedControl?.selectedSegmentIndex
您需要阅读Swift中的Optionals和Optional Chaining,了解这有何帮助。
现在您的应用不会崩溃,但您必须弄清楚当前segmentedControl
为nil
的原因。由于您没有发布足够的代码来诊断,我无法帮助您。不过,我首先要确定您是否真的希望segmentedControl
拥有weak
财产。