【发布时间】:2019-05-31 02:25:24
【问题描述】:
我构建了一个数组来生成 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 个
【问题讨论】:
-
arc4random_uniform已过时。请改用新的随机 API。 hackingwithswift.com/example-code/language/…