有人可以教我如何使用String
从数组中选择项目(arc4random_uniform()
)吗?我试过但我不能,因为arc4random_uniform
可以用来选择Int。
答案 0 :(得分:3)
Swift 3 Extension
虽然Oisdk的回答有效,但扩展可能更有用,而不是一遍又一遍地编写代码。
import Foundation
extension Array {
func randomElement() -> Element {
if isEmpty { return nil }
return self[Int(arc4random_uniform(UInt32(self.count)))]
}
}
let myArray = ["dog","cat","bird"]
myArray.randomElement() //dog
myArray.randomElement() //dog
myArray.randomElement() //cat
myArray.randomElement() //bird
答案 1 :(得分:2)
订阅数组需要和Int,但是arc4random_uniform返回一个UInt32。所以你只需要在这些类型之间进行转换。
import Foundation
let array = ["ab", "cd", "ef", "gh"]
let randomItem = array[Int(arc4random_uniform(UInt32(array.count)))]
另外,arc4random_uniform给出一个比其参数少的随机数。所以只需将array.count转换为UInt32,它就可以工作。