首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 2 arch4random

Swift 2 arch4random
EN

Stack Overflow用户
提问于 2015-12-25 19:59:53
回答 1查看 189关注 0票数 1

在我的应用程序中,我使用这样的东西在我的标签上随机获取文本,除了在我的主要let randomNumber代码中,在xCode中,它有超过300种情况,可以粘贴在这里。

代码语言:javascript
复制
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次,而其他情况甚至还没有使用,因为它是随机选择的。因此,我如何随机选择,但如果案例示例1已经显示,它将不会再次出现,直到所有其他案例已经显示。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-25 20:06:31

有一个名称数组,而不是一个巨大的开关大小写:

代码语言:javascript
复制
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)
}

这将确保每个名称在从头开始之前都会被打印出来。样本输出如下:

汤姆,金,奥斯汀,菲尔,杰夫

然后它又开始了

奥斯汀杰夫菲尔。..。

最后,将以下内容放在适合您需要的地方:

代码语言:javascript
复制
self.randomLabel.text = getRandomName()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34465960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档