我有一个在UIViewController中初始化参数的问题。我有一个类:
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
并且
deck: createDeck() >> 'self' used before super.init call
我该如何修复这个问题,以正确初始化UIViewController?
谢谢你的帮助。
cardButtons
之前,将super.init(coder: aDecoder)
这一行放在前面?因为目前情况下,在类正确初始化之前,你正在使用它。 - holex