我在一个应用程序中有以下代码片段。未正确评估"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编译行为