分配不重复标记Swift标签中的文本的随机数

时间:2015-12-05 23:28:11

标签: arrays swift labels

我正在创建一个使用25个标签数组的应用。我希望为这些标签分配1到25之间的随机数,这些数字不会重复。我可以弄清楚如何将这些标签分配给1到25之间可以重复的随机数,但我无法弄清楚如何不重复这些数字。到目前为止,我的代码如下。

 for label in labelsArray {
     let randomNumber = (arc4random() % 25) + 1
      label.text = "\(randomNumber)"

是否可以将每个标签分配给1到25之间的不同数字?

2 个答案:

答案 0 :(得分:0)

不是生成25个随机数,而是从数组1...25开始,然后随机抽取数组。

(实际上在这种特殊情况下,您可以从25个标签的数组开始,对数组进行洗牌,然后按顺序为它们分配数字。)

答案 1 :(得分:0)

从1 ... 25的数组开始,并在您选择时从中拉出数字:

var a = Array(1...25)

for label in labelsArray {
    let index = Int(arc4random_uniform(UInt32(a.count)))
    let randomNumber = a[index]
    a.removeAtIndex(index)
    label.text = "\(randomNumber)"
}