Swift if语句无效.显然是个bug,但模式是什么



我在一个应用程序中有以下代码片段。未正确评估"if"语句。即使score=-100并且bestScore=200,if语句if score<bestScore不运行其中的代码。bestScores保持在200。

如果在If中添加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重现这个错误,所以我认为这个错误已经纠正了。

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

非常不寻常的Xcode编译行为

最新更新