【问题标题】:Swift 3 - Add user input to array and pick random itemSwift 3 - 将用户输入添加到数组并选择随机项目
【发布时间】: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(...) 语句,按下按钮时会发生什么吗?

标签: arrays swift random


【解决方案1】:

好的,所以这很尴尬。我尝试了其他人的cmets,但没有一个工作。 @pdil 说,“随机按钮是否正确连接到 IBAction?”。我在该按钮中添加了一个打印功能,但没有任何效果,所以我知道连接错误。原来我把我的按钮挂在了一个标签上。我将把我最后使用的代码放在这里:

var choices = [String]()

@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)"
    print("testing")
}

@IBOutlet weak var enterLabel: UITextField!


@IBAction func submitButton(_ sender: Any) {
    let newItem = self.enterLabel.text
    self.choices.append(newItem!)
    self.enterLabel.text = ""
}

对此感到抱歉,感谢您的帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-16
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多