我在使用drawRandomCard 函数时遇到问题。
它在一段时间内正常工作,但最终会使应用程序崩溃。
这是代码:
import Foundation
var cardDeck = Array<PlayingCard>()
class Deck {
func addCard(card : PlayingCard , atTop : Bool = false){
if atTop {
cardDeck.insert(card, atIndex: 0);
}else{
cardDeck += card
}
}
func drawRandomCard() -> PlayingCard{
var card = PlayingCard()
var randomNumber : Int = Int(arc4random()) % (cardDeck.count - 1)
card = cardDeck[randomNumber]
cardDeck.removeAtIndex(randomNumber)
return card
}
}
Use arc4random_uniform
以避免模偏差。就像下面这样:
let randomNumber = arc4random_uniform(150)
对于您的示例,它将是:
let randomNumber = Int(arc4random_uniform(UInt32(cardDeck.count)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)