在Swift条件语句中使用Bool会出错:“从未使用过变量newCard的初始化”

时间:2015-10-26 20:52:41

标签: ios swift boolean

基本上我想做的是在newCard运行时将bool变量playButton设置为true,这样当firstCardPressed运行时,它只会将图像设置为True ,然后将其重置为false。

问题是我收到错误说明

  

从未使用过变量newCard的初始化

但我似乎无法弄清楚如何正确初始化它。

  @IBAction func playButton(sender: UIButton) {    
    // Randomize the face up stack
    let firstRandomNumber:Int = Int(arc4random_uniform(52))
    let firstCardString:String = self.deckArray[firstRandomNumber]
    self.faceUpStack.image = UIImage(named: firstCardString)
    var newCard = true    
  }

  @IBAction func firstCardPressed(sender: UIButton) {
    let cardKept = self.faceUpStack.image
    if newCard == true {
      self.firstCard.image = cardKept
      newCard = false
    }
  }

2 个答案:

答案 0 :(得分:1)

  var newCard = false
 @IBAction func playButton(sender: UIButton) {    
    // Randomize the face up stack
    let firstRandomNumber:Int = Int(arc4random_uniform(52))
    let firstCardString:String = self.deckArray[firstRandomNumber]
    self.faceUpStack.image = UIImage(named: firstCardString)
    newCard = true    
  }

  @IBAction func firstCardPressed(sender: UIButton) {
    let cardKept = self.faceUpStack.image
    if newCard {
      self.firstCard.image = cardKept
      newCard = false
    }
  }

答案 1 :(得分:1)

playButtonFunc中的

newCard是一个局部变量。当func启动时出现,当func结束时它会在没有轨道的情况下消失。 " var newCard = true"因为编译器告诉你,你的func中的最后一个语句是没有意义的,因为局部变量newCard稍后会消失一个实例。

您可能希望它是您班级中的实例变量。它已经很有可能,因为否则firstCardPressed将无法编译。