class ThirdViewController: UIViewController {
var i = 3
var a: Double = 0
var fastestScore:Float = 100000000000000.0
var randomNumberX = Int(arc4random_uniform(375))
var randomNumberY = Int(arc4random_uniform(667))
@IBOutlet weak var fastestScoreLabel: UILabel!
@IBOutlet weak var homeButtonLabel: UIButton!
@IBOutlet weak var finalLabel: UILabel!
@IBOutlet weak var playAgainButtonLabel: UIButton!
@IBOutlet weak var circleImage: UIButton!
@IBOutlet weak var secondTimerLabel: UILabel!
@IBOutlet weak var counterLabel: UILabel!
var timerA = Timer()
var timerB = Timer()
@IBAction func homeButton(_ sender: Any) {
nextPage = false
}
@IBAction func playAgainButton(_ sender: Any) {
randomNumberX = Int(arc4random_uniform(375))
randomNumberY = Int(arc4random_uniform(667))
homeButtonLabel.isHidden = true
counterLabel.text = "3"
i = 3
timerA = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ThirdViewController.counterFunc), userInfo: nil, repeats: true)
a = 0
counterLabel.isHidden = false
playAgainButtonLabel.isHidden = true
circleImage.isHidden = true
finalLabel.isHidden = true
secondTimerLabel.isHidden = true
fastestScoreLabel.isHidden = true
}
@IBAction func circleButton(_ sender: Any) {
fastestScoreLabel.isHidden = false
circleImage.isHidden = true
homeButtonLabel.isHidden = false
timerB.invalidate()
playAgainButtonLabel.isHidden = false
var saying = ""
if a < 0.2 {
saying = "That's actually pretty good \(a) seconds is pretty fast"
} else if a >= 0.2 && a <= 0.45 {
saying = "\(a) seconds is not really that good"
} else {
saying = "\(a) seconds? Seriously? Are you even trying?"
}
finalLabel.text = saying
finalLabel.isHidden = false
if Float(a) < fastestScore {
fastestScore = Float(a)
UserDefaults.standard.set(fastestScore, forKey: "Fastest Score")
let savedFastestScore = UserDefaults.standard.float(forKey: "Fastest Score")
fastestScoreLabel.text = String(savedFastestScore)
}
}
func secondTimer() {
a = a + 0.01
secondTimerLabel.text = String(a)
}
func counterFunc() {
if i > 1 {
i -= 1
counterLabel.text = String(i)
} else {
timerB = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(ThirdViewController.secondTimer), userInfo: nil, repeats: true)
circleImage.isHidden = false
self.circleImage.center = CGPoint(x:randomNumberX, y:randomNumberY)
counterLabel.isHidden = true
timerA.invalidate()
secondTimerLabel.isHidden = false
}
}
override func viewDidLoad() {
super.viewDidLoad()
fastestScoreLabel.isHidden = true
homeButtonLabel.isHidden = true
playAgainButtonLabel.isHidden = true
circleImage.isHidden = true
secondTimerLabel.isHidden = true
timerA = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ThirdViewController.counterFunc), userInfo: nil, repeats: true)
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}sauver un highscore avec UserDefaults à Swift 3
J'ai essayé plusieurs fois à l'aide userDefaults pour essayer de sauver le meilleur score lorsque vous fermez à mais je ne pouvez pas l'faire. Si quelqu'un a une idée sur la façon de le faire, je l'apprécierais vraiment lol.
Bienvenue sur stackoverflow! Votre question concerne 'UserDefaults', et vous avez posté du code (bon!), Mais le code que vous avez posté n'essaie pas d'utiliser' UserDefaults' (mauvais ...). Vous devez nous montrer quel code vous avez écrit qui essaye réellement d'utiliser 'UserDefaults', et ce que vous pensez ne pas être correct (par ex.l'erreur exacte que vous obtenez du compilateur, ou une description du comportement d'exécution et comment c'est incorrect). –
Ok, une seconde je vais le lancer avec ce que j'avais désolé je l'ai juste sorti pour qu'il soit plus facile à lire. –
@rob J'ai téléchargé le code édité maintenant et j'ai eu d'autres commentaires disant que je dois faire synchroniser() –