Arrays 我不想在swift 3中重复同样的单词,我该怎么办?

Arrays 我不想在swift 3中重复同样的单词,我该怎么办?,arrays,swift,repeat,Arrays,Swift,Repeat,我正在尝试制作一个能够显示单词和句子的应用程序,但它通常是同一个单词或句子。我该怎么做才能不重复同样的话呢 @IBOutlet weak var label: UILabel! override func viewDidLoad() { super.viewDidLoad() } var array = ["word 1", "Word 2", "Word 3", "Word 4",

我正在尝试制作一个能够显示单词和句子的应用程序,但它通常是同一个单词或句子。我该怎么做才能不重复同样的话呢

@IBOutlet weak var label: UILabel!


override func viewDidLoad() {
    super.viewDidLoad()

}

var array =  ["word 1",
              "Word 2",
              "Word 3",
              "Word 4",
              "Word 5",
              "Word 6",
              ]

@IBAction func randomWord(_ sender: Any) {
     changeWord()
}



func changeWord() {
    let randomWordGen = Int(arc4random_uniform(UInt32(array.count)))
    label.text = array[randomWordGen]
}

将您的func更改为:

 func changeWord() {
     guard !array.isEmpty else {
          // list is empty
          return 
     }
     let randomInt = Int(arc4random_uniform(UInt32(array.count)))
     label.text = array.remove(at: randomInt)
 }
.removeat:方法在指定的Int处从数组中移除元素并返回它


编辑:正如LeoDabus指出的那样。实际上,将数组的计数与零进行比较要比使用isEmpty并随后访问计数慢。更新了函数。

从数组中删除生成的单词,以便下次选择单词时该单词不可用。重复,直到数组为空。那我该怎么办?谢谢!它工作得很好!是否可以显示一个文本,不再显示单词,然后重新开始?