繁体   English   中英

可选类型“Bool”不能用作布尔值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM