我已经构建了一个数组来生成8次迭代的随机牌对,总共16张牌。然而,它却生产了17张牌。我不明白它为什么要生产这张额外的卡,也不知道如何阻止它。
我对Xcode和Swift显然是个新手,所以我的调试技能是零。我插入了print语句并使用了断点来尝试理解额外的卡片来自哪里。这似乎发生在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个
发布于 2019-05-31 02:27:31
这一行:
var generatedCardsArray = [Card()]
你用来初始化一个空数组实际上是创建一个只有一个条目的数组。试试这个:-
var generatedCardsArray : [Card] = []
然后你正确地生成了16张牌(8对),但你已经有了一张牌,那就是17张。
https://stackoverflow.com/questions/56387921
复制