2016-08-26 2 views
0

Я получаю неразрешенный идентификатор для пары разных переменных. Я определил переменные в классе viewController, но по какой-то причине, когда я добавляю их в функцию viewDidLoad(), он имеет ошибку. Какие-либо предложения? Заранее спасибо! Я использую Swift3 в новом Xcode v8 бета 6использование unresolved identifier "winnerLabel"

импорт UIKit

class ViewController: UIViewController {  
    @IBOutlet weak var playAgainButton: UIButton! 
    @IBOutlet weak var winnerLabel: UILabel! 
    @IBAction func playAgain(_ sender: AnyObject) { 
    } 
    //1 is noughts, 2 is crosses 
    var activeGame = true 
    var activePlayer = 1 
    var gameState = [0, 0, 0, 0, 0, 0, 0, 0, 0] //0 - empty, 1 - noughts, 2 - crosses 
    let winningCombination = [[0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6]] 
    @IBAction func buttonPressed(_ sender: AnyObject) { 
     let activePosition = sender.tag - 1 
     if gameState[activePosition] == 0 && activeGame { 
      gameState[activePosition] = activePlayer 
      if activePlayer == 1 { 
       sender.setImage(UIImage(named: "nought.png"), for: []) 
       print(sender.tag) 
       activePlayer = 2 
      } else { 
       sender.setImage(UIImage(named: "cross.png"), for: []) 
       print(sender.tag) 
       activePlayer = 1 
      } 
      for combination in winningCombination { 
       if gameState[combination[0]] != 0 && gameState[combination[0]] == gameState[combination[1]] && gameState[combination[1]] == gameState[combination[2]] { 
        //we have winner! 
        activeGame = false 
        print(gameState[combination[0]]) 
        if gameState[combination[0]] == 1 { 
         winnerLabel.text = "Noughts has won!"       
        } else {       
         winnerLabel.text = "Crosses has won!"       
        }      
        UIView.animate(withDuration: 1, animations: {       
         self.winnerLabel.center = CGPoint(x: self.winnerLabel.center.x + 500, y: self.winnerLabel.center.y) 
         self.playAgainButton.center = CGPoint(x: self.playAgainButton.center.x + 500, y: self.playAgainButton.center.y) 
        }) 
       }      
      } 
     } 
    } 
} 

func viewDidLoad() { 
    viewDidLoad()  
    winnerLabel.isHidden = true 
    playAgainButton.isHidden = true  
    winnerLabel.center = CGPoint(x: winnerLabel.center.x - 500, y: winnerLabel.center.y) 
    playAgainButton.center = CGPoint(x: playAgainButton.center.x - 500, y: playAgainButton.center.y) 
} 

func didReceiveMemoryWarning() { 
    didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

ответ

0

Проверьте фигурные скобки. У вас слишком много до viewDidLoad, тогда вам нужно в конце, чтобы закрыть класс.

Также viewDidLoad() и didReceiveMemoryWarning() функции должны иметь переопределение ключевое слово перед ними:

override func viewDidLoad() { 
+0

Спасибо! Да, я забрал переопределение и супер, потому что я ошибся, и он предложил убрать его. Но я добавил их обратно. Ценить это –

Смежные вопросы