Swift 2 arc4random
Swift 2 arch4random
在我的应用程序中,我使用类似这样的方法在我的标签上获取随机文本,除了在我的主要 let randomNumber
代码中,在 xCode 中,它有超过 300 个案例,要粘贴的太多了在这里。:
let randomNumber = Int(arc4random_uniform(23))
var textLabel = "" as NSString
switch (randomNumber){
case 1:
textLabel = "Kim."
break
case 2:
textLabel = "Phil."
break
case 3:
textLabel = "Tom"
break
case 4:
textLabel = "Jeff"
break
default:
textLabel = "Austin"
}
self.randomLabel.text = textLabel as String
但问题是,有时它会在标签上显示相同的文字 5-6 次,而其他情况甚至还没有使用,因为它随机选择。那么我怎么能随机选择,但是如果case example case 1已经显示出来了,它不会再出现,直到所有其他的case都显示出来。
使用名称数组而不是巨大的开关盒:
var names = ["Kim.", "Phil.", "Tom", "Jeff", "Austin"] // and all your remaining names
let originalNames = names
func getRandomName() -> String {
if (names.count == 0) {
names = originalNames
}
let randomNumber = Int(arc4random_uniform(UInt32(names.count)))
return names.removeAtIndex(randomNumber)
}
这可确保在重新开始之前打印每个名称。示例输出为:
Tom, Kim., Austin, Phil., Jeff
然后又开始了
Austin, Jeff, Phil. ...
最后,将如下内容放在适合您需要的地方:
self.randomLabel.text = getRandomName()
在我的应用程序中,我使用类似这样的方法在我的标签上获取随机文本,除了在我的主要 let randomNumber
代码中,在 xCode 中,它有超过 300 个案例,要粘贴的太多了在这里。:
let randomNumber = Int(arc4random_uniform(23))
var textLabel = "" as NSString
switch (randomNumber){
case 1:
textLabel = "Kim."
break
case 2:
textLabel = "Phil."
break
case 3:
textLabel = "Tom"
break
case 4:
textLabel = "Jeff"
break
default:
textLabel = "Austin"
}
self.randomLabel.text = textLabel as String
但问题是,有时它会在标签上显示相同的文字 5-6 次,而其他情况甚至还没有使用,因为它随机选择。那么我怎么能随机选择,但是如果case example case 1已经显示出来了,它不会再出现,直到所有其他的case都显示出来。
使用名称数组而不是巨大的开关盒:
var names = ["Kim.", "Phil.", "Tom", "Jeff", "Austin"] // and all your remaining names
let originalNames = names
func getRandomName() -> String {
if (names.count == 0) {
names = originalNames
}
let randomNumber = Int(arc4random_uniform(UInt32(names.count)))
return names.removeAtIndex(randomNumber)
}
这可确保在重新开始之前打印每个名称。示例输出为:
Tom, Kim., Austin, Phil., Jeff
然后又开始了
Austin, Jeff, Phil. ...
最后,将如下内容放在适合您需要的地方:
self.randomLabel.text = getRandomName()