Swift可选错误

时间:2015-07-15 18:41:37

标签: ios xcode swift

让这个问题让自己感到羞耻,但没有必要帮助。我只是不明白发生了什么。我以为模拟器崩溃了,但事实证明我不小心设置了一个断点,这就是导致它返回Xcode的原因。

随意忽略,但也许留下这将有助于其他新手Xcode。

我正在学习Swift,并从lynda.com上学习入门课程。我遇到了一个错误,我确信这是因为自从课程开始以来Swift的变化(当我使用6.4时教师在Xcode 6.0.1上)。我希望得到一些帮助,以便我可以继续。

示例项目正在构建一个简单的计算器。我正在创建代码以点击按钮(计算器的UI上的任何数字),并将其显示在作为计算器显示的UILabel中。

这是显然导致问题的功能:

popup = new Ext.Window({
    width: 900,
    height: 320,
    resizable: true,
    draggable: true,
    id: 'popupWindow',

    layout: {
        type: 'border'
    },

    items: [
        // ...
        {
            xtype: 'panel',
            region: 'center',
            id: 'centerPanel',
            autoscroll: true,
            margin: '0 5 0 5',
            html: jsonData.email
        },
        // ...
    ]
});

它并没有在Xcode中显示为错误,但是当我运行模拟器时,当我点击其中一个数字按钮时,模拟器会崩溃回Xcode,而行var str:String! = sender.titleLabel!.text突出显示。

从我已经掌握的一点点开始,我猜测错误与Swift改变处理选项的方式有关。但我只是不太了解,或者如何解决它。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

试试这个:

var str:String! = sender.titleLabel?.text

答案 1 :(得分:0)

valueStringstr如果永远不是零,则不需要选项。

尝试:

var valueString: String = ""

@IBAction func tappedNumber(sender: UIButton) {
    if let label = sender.titleLabel {
        let str = label.text
        valueString = valueString.stringByAppendingString(str)
    }
    label.text = valueString
}