如何从数组中抓取随机元素而不多次抓取同一元素



当我使用 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中显示两次?谢谢!

保留随机索引值的列表,如果后续随机索引在该列表中,则跳过它并生成另一个随机索引。

最新更新