gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 06:11:23 25 4
gpt4 key购买 nike

我构建了一个数组来生成 8 次随机卡片对迭代,总共 16 张卡片。然而,它却生产了 17 张卡片。我不明白为什么它会产生这张额外的卡片或如何阻止它。

我显然是 Xcode 和 Swift 的新手,所以我的调试技能是零。我插入了打印语句并使用断点来尝试了解额外卡片的来源。它似乎发生在 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 个

最佳答案

这一行:

var generatedCardsArray = [Card()]

你用来初始化一个空数组实际上是创建一个只有一个条目的数组。试试这个:-

var generatedCardsArray : [Card] = []

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

关于arrays - 如何阻止数组生成太多对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56387921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com