Как получить случайный элемент из массива, не захватывая один и тот же элемент более одного раза? [Дубликат]
На этот вопрос уже есть ответ:
Как мне перетасовать массив в Swift? 25 ответов Когда я беру элемент из массива, используяarc4random_uniform()
метод, один и тот же элемент массива часто захватывается более одного раза. Я пытаюсь сделать так, чтобы каждый элемент в массиве захватывался только один раз. Причина, по которой я пытаюсь это сделать, состоит в том, что более чем одна ячейка вUITableView
не имеют того же текста. Вот массив для текста ячеек вUITableView
:
var definitions = ["Used to carry the pharoah","Used to carry bodies as a ceremony","Had a flat deck to carry a farmer's treasure","Daily, it made a trip around the world to carry Ra","Towed by smaller boats, carrying heavy objects","Used for business and pleasure by officials/nobles","Carried most Egyptians and some goods"]
В моемviewDidLoad()
метод, я сделал это, чтобы вызвать случайные элементыdefinitions
:
self.boats = [Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))]),Boats(name: definitions[Int(arc4random_uniform(7))])]
Как я могу изменить свой код, чтобы два элемента не отображались дважды в моемUITableView
? Спасибо