I've got problem with init my parameters in UIViewController. I've got a class:
class ViewController: UIViewController { @IBOutlet var cardButtons: Array<UIButton> var flipCount = 0 var game: CardMatchingGame var backCardImage: UIImage var frontCardImage: UIImage required init(coder aDecoder: NSCoder) { self.backCardImage = UIImage(named: "back") self.frontCardImage = UIImage(named: "front") self.game = CardMatchingGame(count: cardButtons.count, deck: createDeck()) super.init(coder: aDecoder) } @IBAction func touchCardButton(sender: UIButton) { var cardButtonsArray = cardButtons as NSArray var chosenButtonIndex = cardButtonsArray.indexOfObject(sender) game.chooseCardAtIndex(chosenButtonIndex) } func createDeck() -> Deck { return PlayingCardDeck() } }
but I've got a error in
count: cardButtons.count >> Variable 'self.cardButtons' used before being initialized/Property 'self.cardButtons' not initialized at super.init call and
deck: createDeck() >> 'self' used before super.init call How can I fix this to got properly initialized UIViewController?
Thank you for your help.
super.init(coder: aDecoder)before you try to use thecardButtons? because currently you are using it before the class is inited properly.