gpt4 book ai didi

ios - 单击按钮时在Swift中不重复单词-iOS

转载 作者:行者123 更新时间:2023-12-01 21:59:05 25 4
gpt4 key购买 nike

快速单击按钮时,如何不重复阵列?我正在努力使结果不再重复。我可以对字符串进行排序,使其以一种贯穿所有水果的方式运行吗?它不必随机化。我只希望每个单词在单击按钮时显示一次,并显示最后一个数组“没有剩余的水果选项”

我试图将字符串随机化,但这重复了结果。我只是想让它一步一步走。当我按下屏幕上的按钮时,图像标签上的输出应该一次给我每个水果一个。

即。按下按钮”
输出:“Apple”

再次按下按钮
输出:“香蕉”

依此类推,直到最后一个字符串显示“没有剩余的水果选项”

import UIKit

class fruitrandomViewController: UIViewController {
@IBOutlet weak var nextfruitButton: UIButton!
@IBOutlet weak var fruitbox: UILabel!

@IBAction func fruitbutton(_ sender: UIButton) {

let array = ["Apple","Banana","Orange","Pinapple", "Plum", "Pear","T"There aren't any fruit options left",]


let randomFruitgenerator = Int(arc4random_uniform(UInt32(array.count)))
fruitbox.text = array[randomFruitgenerator]

}
}

最佳答案

您需要以某种方式跟踪已经使用的数组元素。您可以通过以下两种方式执行此操作:

  • 保留一个索引属性,该属性跟踪
  • 数组的下一个元素
  • 当消耗元素时使数组本身突变

  • 无论哪种方式,都应使数组成为实例属性,而不是使函数本身成为局部变量。

    这是第二种方法的示例(我喜欢这种方法,因为我认为它使代码更简单一些,因为您无需跟踪下一个索引)。
    class fruitrandomViewController: UIViewController {
    @IBOutlet weak var nextfruitButton: UIButton!
    @IBOutlet weak var fruitbox: UILabel!

    var fruit = ["Apple","Banana","Orange","Pinapple", "Plum", "Pear",].shuffled()

    @IBAction func fruitbutton(_ sender: UIButton) {

    if fruit.isEmpty {
    fruitbox.text = "There's no more fruit left"
    } else {
    fruitbox.text = self.fruit[0]
    self.fruit.remove(at:0)
    }
    }
    }

    为了完整起见,这是第一种方法(带有一个“以前的水果”按钮):
    class fruitrandomViewController: UIViewController {
    @IBOutlet weak var nextfruitButton: UIButton!
    @IBOutlet weak var fruitbox: UILabel!

    let fruit = ["Apple","Banana","Orange","Pinapple", "Plum", "Pear",].shuffled()
    var nextFruit = 0

    @IBAction func fruitbutton(_ sender: UIButton) {

    if nextFruit < fruit.count {
    fruitbox.text = self.fruit[nextFruit]
    nextFruit += 1
    } else {
    fruitbox.text = "There's no more fruit left"

    }
    }

    @IBAction func previousFruitButton(_ sender: UIButton) {

    guard nextFruit > 0 else {
    return
    }
    nextFruit -= 1
    fruitbox.text = self.fruit[nextFruit]
    }
    }

    如果您不希望水果随机排列,只需删除 .shuffled()

    关于ios - 单击按钮时在Swift中不重复单词-iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60661961/

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