Assigning Random numbers that don't repeat to the text in an array of labels Swift
本问题已经有最佳答案,请猛点这里访问。
我正在创建一个使用25个标签数组的应用程序。我希望这些标签被分配到1到25之间的随机数字,不会重复。我可以知道如何将这些标签分配给1到25之间可以重复的随机数字,但我不知道如何避免这些数字重复。到目前为止,我的代码如下。
1 2 3 | for label in labelsArray { let randomNumber = (arc4random() % 25) + 1 label.text ="\(randomNumber)" |
是否可以将每个标签分配给1到25之间的不同编号?
从一个1…25的数组开始,并在选择它们时从中提取数字:
1 2 3 4 5 6 7 8 | 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)" } |
不是生成25个随机数,而是从一个数字数组
(实际上,在这种特殊情况下,您可以从25个标签组成的数组开始,对数组进行无序排列,然后按顺序分配数字。)