var plays = Dictionary<Int,Int>()
var done = false
var aiDeciding = false
if (!plays[sender.tag] && !aiDeciding && !done){
self.setImageForSpot(sender.tag, player:1)
这一行说可选类型'Bool'不能用作布尔值;测试 代表'!nil ='。我做了它说的话,但它更糟糕。
checkForWin()
aiTurn()
}
答案 0 :(得分:0)
当您检查播放[sender.tag]时,这可能会返回Int或nil。它不是一个博尔。所以试试:
var plays = Dictionary<Int,Int>()
var done = false
var aiDeciding = false
if ((plays[sender.tag] == nil) && !aiDeciding && !done){
self.setImageForSpot(sender.tag, player:1)
}
答案 1 :(得分:0)
这是你的工作if语句:
if (plays[sender.tag] != nil) && !aiDeciding && !done{
}
在您的代码中,您执行了!plays[sender.tag]
并且没有返回bool但返回Int
值,因为您声明dictionary
具有Int
个键和值。
所以你需要检查它是否为零,如果它不是,你可以继续。