我建立了一个数组来生成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个
答案 0 :(得分:4)
此行:
var generatedCardsArray = [Card()]
用于初始化空数组的实际上是在创建一个只有一个条目的数组。尝试以下方法:-
var generatedCardsArray : [Card] = []
然后您正确地生成了16张卡(8对),但是已经有一张卡开始了,那就是17张。