【发布时间】:2017-04-19 20:18:54
【问题描述】:
这个应用程序的想法是,用户输入一些内容然后点击提交,然后文本字段清空,以便他们可以输入其他内容,然后当他们点击一个名为随机化的不同按钮时,标签的文本会从这些项目中变成一个随机项目用户输入。我想我应该将新的输入附加到一个数组中,然后创建一个 randomIndex,然后使用 randomIndex 使标签的文本成为数组中的随机项。这是我的代码:
var choices = [""]
@IBOutlet weak var chosenLabel: UILabel!
@IBAction func randomiseButton(_ sender: Any) {
let randomIndex = Int(arc4random_uniform(UInt32(self.choices.count)))
let randomItem = self.choices[randomIndex]
self.chosenLabel.text = "\(randomItem)"
}
@IBOutlet weak var enterLabel: UITextField!
@IBAction func submitButton(_ sender: Any) {
let newItem = self.enterLabel.text
self.choices.append(newItem!)
self.enterLabel.text = ""
}
提前感谢所有帮助。顺便说一句,这不会引发错误或任何事情,但是当我在 iPad 上运行此应用程序并输入内容时,它工作正常,直到我单击随机化然后什么也没有发生。 :(
【问题讨论】:
-
您可能希望将最大随机数设置为
.count-1,否则它会在随机选择最高数时超出范围... -
将您的选择更改为
var choices = [String](),因为您需要一个空数组来存储您的字符串,而不是一个以空字符串作为第一项的数组。 -
@LinusGeffarth 函数返回的值小于上限。检查此链接link
-
哦,我明白了,我的错。感谢@Alan 提供的信息
-
随机按钮是否正确连接到 IBAction?如果在
randomiseButton(_:)中添加断点或print(...)语句,按下按钮时会发生什么吗?