This is my code. When generateNewNumber function is executed how can I make it that every new word, thus every consequent index is a new one, until wordBank.count - 1 index are generated? Like every new word should be a new one, every new randomIndex should not repeat any of the previous ones, should be unique.
import UIKit
import LGButton
import SCLAlertView
class ViewController: UIViewController, UINavigationControllerDelegate {
var randomIndex = Int.random(in: 1..<14)
let wordBank = ["Cats", "lions", "giraffe", "kangaroo", "animal", "apple", "glass", "class", "kettle", "stove"]
@objc func generateNewNumber() {
self.randomIndex = Int.random(in: 1..<self.wordBank.count-1)
let alertView = SCLAlertView()
alertView.addButton("Learn more", target: self, selector: #selector(self.generateNewNumber))
alertView.addButton("Second button", target: self, selector: #selector())
alertView.showSuccess("Word", subTitle: self.wordBank[self.randomIndex])
}
@IBAction func learning(_ sender: LGButton) {
sender.isLoading = true
let deadlineTime = DispatchTime.now() + .seconds(2)
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
sender.isLoading = false
let alertView = SCLAlertView()
alertView.addButton("Learn more", target: self, selector: #selector(self.generateNewNumber))
alertView.addButton("Second button", target: self, selector: #selector())
alertView.showSuccess("Word", subTitle: self.wordBank[self.randomIndex])
}
}
@IBOutlet var instanceofLGButton: LGButton!
override func viewDidLoad() {
super.viewDidLoad()
self.instanceofLGButton.addTarget(self, action: #selector(self.learning(_:)), for: .touchUpInside)
}
}
I tried from another StackOverflow post
func randomNumber() -> UInt32 {
var randomNumber = arc4random_uniform(10)
while previousNumber == randomNumber {
randomNumber = arc4random_uniform(10)
}
previousNumber = randomNumber
return randomNumber
}
and then
var next: Int
repeat {
next = Int(arc4random_uniform(9))
} while current == next
Why don't these work?
Aucun commentaire:
Enregistrer un commentaire