Я бы хотел, чтобы метка foxmill хранила высокий балл, используя пользовательский по умолчанию. Очевидно, что если будет новый высокий балл, я бы хотел его заменить. Проблема в том, что totalTime (что отслеживает оценку) является двойным, а не int. Во всех учебниках используется int для высокоуровневого урока.необходимо создать userdefualt, который сохраняет двойной как высокий балл (swift3)
import UIKit
class winViewController: UIViewController {
@IBOutlet var score2: UILabel!
@IBOutlet var winningLabel: UILabel!
@IBOutlet var foxMill: UILabel!
@IBOutlet var hhighscore: UILabel!
public var LebelText: String?
public var LebelText2: String?
public var LebelText3: String?
public var LebelText4: String?
override func viewDidLoad() {
super.viewDidLoad()
timeCalculation()
loadState()
}
func saveScore(score: Double) {
// Instantiate user defaults
let userDefaults:UserDefaults = UserDefaults.standard
// Set your score
userDefaults.set(score, forKey: "highScore")
// Sync user defaults
userDefaults.synchronize()
}
func loadState() {
let userDefaults = UserDefaults.standard
let score = userDefaults.double(forKey: "highScore")
foxMill.text = "High Score: \(score)"
}
func timeCalculation(){
guard let unwrapedText = self.LebelText2 else {
return
}
guard let unwrapedText2 = self.LebelText else {
return
}
guard let unwrapedText3 = self.LebelText3 else {
return
}
guard let unwrapedText4 = self.LebelText4 else {
return
}
if let myInt = Double(unwrapedText), let myInt2 = Double(unwrapedText2), let myInt3 = Double(unwrapedText3), let myInt4 = Double(unwrapedText4)
{
var totalTime = myInt + myInt2 + myInt3 + myInt4
self.winningLabel.text = "You won"+"\n"+"Reaction time :" + String(totalTime) + " Seconds"
saveScore(score: totalTime)
}}}
Как бы я использовать мой лейбл foxmill с этим? –
@joemax - Я не понимаю, о чем вы спрашиваете. Вы хотите сохранить высокий балл как 'Double', используя' User Defaults', что это связано с вашей 'UILabel'? – Pierce
что бы я поставил в viewdidload? –