如何从swift中的数组中选择一个随机的十(String)

时间:2015-05-17 16:42:18

标签: arrays swift

有人可以教我如何使用String从数组中选择项目(arc4random_uniform())吗?我试过但我不能,因为arc4random_uniform可以用来选择Int。

2 个答案:

答案 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,它就可以工作。