参见英文答案 >
Crash when casting the result of arc4random() to Int7个
我有这个drawRandomCard函数的问题.
我有这个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 } }
使用arc4random_uniform避免模偏差.如下:
let randomNumber = arc4random_uniform(150)
对于您的示例,它将是:
let randomNumber = Int(arc4random_uniform(UInt32(cardDeck.count)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。