In ViewController.swift - I declare a lazy var game at the beginning of the class, and still get the error
Cannot use instance member 'cardButtons' within property initializer; property initializers run before 'self is' available
import UIKit
class ViewController: UIViewController {
lazy var game = Concentration(numberOfPairsOfCards: (cardButtons.count + 1) / 2)
@IBOutlet var cardButtons: [UIButton]!
var emojiChoices = ["🍆", "💩", "🍆", "💩" ]
@IBAction func touchCard(_ sender: UIButton) {
flipCount += 1
if let cardNumber = cardButtons.index(of: sender) {
flipCard(withEmoji: emojiChoices[cardNumber], on: sender)
} else {
print("Chosen card not in cardButtons")
}
}
}
Here is the class 'Concentration', that I am trying to create an instance of import Foundation
class Concentration {
var cards = [Card]()
init(numberOfPairsOfCards: Int) {
for _ in 1...numberOfPairsOfCards {
let card = Card()
cards += [card, card]
}
}
}