
[英]Optional type 'Bool' cannot be used as a boolean; test for '!= nil' instead
[英]Optional type'Bool' cannot be used as boolean
var plays = Dictionary<Int,Int>()
var done = false
var aiDeciding = false
if (!plays[sender.tag] && !aiDeciding && !done){
self.setImageForSpot(sender.tag, player:1)
这一行说 Optional type'Bool' 不能用作布尔值; 改为测试 '!nil='。 我做了它所说的,但它使情况变得更糟。
checkForWin()
aiTurn()
}
当您检查 plays[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)
}
这是您的工作 if 语句:
if (plays[sender.tag] != nil) && !aiDeciding && !done{
}
在您的代码中,您执行了!plays[sender.tag]
,它不返回 bool 但它返回Int
值,因为您声明了一个具有Int
键和值的dictionary
。
所以你需要检查它是否为零,如果它不是零你可以继续。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.