Swift if语句不起作用。显然是一个错误,但模式是什么

时间:2015-02-09 00:20:16

标签: xcode swift if-statement

我在应用中有以下代码片段。 'if'语句未正确评估。即使得分= -100且bestScore = 200,if语句如果得分< bestScore不会在其中运行代码。 bestScore保持在200.

如果我在if中添加一个print语句,它会突然开始工作。我在没有print语句的游乐场里尝试过,它运行正常。为简单起见,我用'true'替换了一些表达式。

        var bestScore = 200
        var score = 200
        if true {
            if true {
                score = -100
            } 
        }
        if score < bestScore {
            print("Testing") // When this wasn't here it wasn't working
            bestScore = score
            bestMove = move
        }

我之前在Swift中看到过这种奇怪的行为,很少,但我无法找出解释何时发生这种情况的模式。这是Xcode 6.1.1(6A2008a)。

编辑:我无法再使用Xcode 6.2 beta 5重现此错误,因此我认为这已得到纠正。

1 个答案:

答案 0 :(得分:1)

它看起来非常像我经历的事情。 虽然情况并不相同,但它确实涉及在打印语句后分配属性,如果打印语句不存在则不会发生。长话短说,这是一个错误,我向苹果发送了一份仍在调查中的报告。

Very unusual Xcode compile behaviour