'(@lvalue Int) - &gt; $ T7'与'Dictionary <int,int>'</int,int>不同

时间:2015-04-12 22:30:17

标签: ios swift dictionary

我对编程很新,所以要好。我正在使用最新版本的Xcode来构建一个井井有条的游戏,只是为了好玩(单视图应用程序)。

var plays = Dictionary<Int,Int>()
var done = false
var aiDeciding = false

@IBAction func UIButtonClicked(sender:UIButton){
    userMessage.hidden = true

    if !plays(sender.tag) && !aiDeciding && !done{
      setImageForSpot(sender.tag, player:1)
    }

在条件if语句(if !plays(sender.tag))处,我收到错误消息:

  

&#39;(@ lvalue Int) - &gt; $ T7&#39;与&#39;词典&#39;

不同

1 个答案:

答案 0 :(得分:2)

使用plays词典时出现了一些问题。

最简单的是,您使用()代替[]进行下标访问(即plays[sender.tag]

接下来,你不能在整数上使用! - 与一些基于C的语言不同,你不能在Swift中使用整数作为布尔值。所以你必须将它与特定值进行比较。大概是你在检查它是否等于0?

最后,字典在Swift中返回可选值,您可能需要解包。但好消息是,如果你关心的是它是否等于0,那么你可以将它与一个值进行比较而不需要打开它。

所以这应该有效:

if plays[sender.tag] == 0 && !aiDeciding && !done {
    // etc…
}