我在https://www.hackingwithswift.com/read/35/2/generating-random-numbers-in-ios-8-and-earlier中读到,生成随机数的最佳方法是使用
let r = arc4random_uniform(UInt32(_names.count))
let name : String = _names[Int(r)]
Run Code Online (Sandbox Code Playgroud)
但似乎很奇怪,我必须投两次才能得到一个随机数,我该怎么办才能避免施法?
这实际上取决于你想要避免多少铸造.你可以简单地将它包装在一个函数中:
func random(max maxNumber: Int) -> Int {
return Int(arc4random_uniform(UInt32(maxNumber)))
}
Run Code Online (Sandbox Code Playgroud)
那么你只需要做一次难看的铸造.无处不在你需要一个最大数字的随机数:
let r = random(max: _names.count)
let name: String = _names[r]
Run Code Online (Sandbox Code Playgroud)
作为旁注,由于这是Swift,您的属性不需要_在它们面前.
| 归档时间: |
|
| 查看次数: |
5726 次 |
| 最近记录: |