如何阻止数组生成太多对象?

时间:2019-05-31 02:25:24

标签: arrays swift

我建立了一个数组来生成8对随机卡片对的迭代,总共16张卡片。但是,它改为生产17张卡。我看不到为什么它会产生这张额外的卡或如何停止它。

我显然是Xcode和Swift的新手,所以我的调试技能是Nil。我插入了打印语句,并使用断点来尝试了解额外的卡来自何处。它似乎是在CardModel类的开始时发生的,也许是我在开始时编写该方法的方式。

class CardModel {

    func getCards() -> [Card] {
        //print("2nd Check")
        // Declare an array to store the generated cards
        var generatedCardsArray = [Card()]

        print("number of random pairs \(generatedCardsArray.count)")

        // Randomly generate pairs of cards
        for _ in 1...8 {

            print("number of random pairs \(generatedCardsArray.count)")

            // Get a random number
            let randomNumber = arc4random_uniform(13) + 1

            // Log the number
            print("Random # \(randomNumber)")

            // Create the first card object
            let cardOne = Card()
            cardOne.imageName = "card\(randomNumber)"

            generatedCardsArray.append(cardOne)

            // Create the second card object
            let cardTwo = Card()
            cardTwo.imageName = "card\(randomNumber)"

            generatedCardsArray.append(cardTwo)

我希望这会输出16个随机对,但它会输出17个

1 个答案:

答案 0 :(得分:4)

此行:

var generatedCardsArray = [Card()]
用于初始化空数组的

实际上是在创建一个只有一个条目的数组。尝试以下方法:-

var generatedCardsArray : [Card] = []

然后您正确地生成了16张卡(8对),但是已经有一张卡开始了,那就是17张。