gpt4 book ai didi

ios - 我试图选择一个随机字符串来填充各个标签,同时每次都删除所选的标签

转载 作者:行者123 更新时间:2023-11-28 07:21:34 25 4
gpt4 key购买 nike

我正在尝试在我的一个已发布的应用程序中重用一段非常适合多行strings的代码,但我无法弄清楚为什么它不同并且没有为这个项目工作。

这似乎不是因为不同的 labels 或时间延迟的 Action ,但我可能是错的。

    var randomNumberSelection = ["1", "2", "3", "4", "5"]

let index = Int(arc4random_uniform(UInt32(randomNumberSelection.count)))
let removed = randomNumberSelection.remove(at: index)
guard !removed.isEmpty else {
return
}
if label1.text == nil && label2.text == nil && label3.text == nil && label4.text == nil{
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1), execute:{
self.label1.text = removed

if self.label1.text != nil && self.label2.text == nil && self.label3.text == nil && self.label4.text == nil{
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2), execute:{
self.label2.text = removed
}
})
}
})

如果我只使用 array 它工作得很好但偶尔 duplicates 我想消除重复的可能性。

最佳答案

我相信我已经想出了最简单的解决方案,而且看起来效果很好。考虑到如果您使用 .randomElement() 则不能将 .removeLast() 添加到字符串中,这很有效而且很简单!

var randomNumberSelection = ["1", "2", "3", "4", "5"].shuffled()

if label1.text == nil && label2.text == nil && label3.text == nil && label4.text == nil{
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1), execute:{
self.label1.text = randomNumberSelection.removeLast()

if self.label1.text != nil && self.label2.text == nil && self.label3.text == nil && self.label4.text == nil{
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2), execute:{
self.label2.text = randomNumberSelection.removeLast()
})
}
})
}

关于ios - 我试图选择一个随机字符串来填充各个标签,同时每次都删除所选的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57882854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com