Ресурс, с которого я получил этот код, был написан на Swift 3 и работает соответствующим образом. Мое приложение написано на Swift 4. Я думаю, что мне может не хватать чего-то специфического для Swift 4, но я не могу понять, что это может быть.
У меня есть соответствующие выходы и переменная ...
@IBOutlet weak var scoreLabel: UILabel!
@IBOutlet weak var highScoreLabel1: UILabel!
var recordData: String!
viewDidLoad
и viewDidAppear
учитываются ...
override func viewDidLoad() {
super.viewDidLoad()
let userDefaults = Foundation.UserDefaults.standard
let value = userDefaults.string(forKey: "Record")
recordData = value
}
override func viewWillAppear(_ animated: Bool) {
let userDefaults = Foundation.UserDefaults.standard
let value = userDefaults.string(forKey: "Record")
if (value == nil) {
highScoreLabel1.text = "0"
} else {
highScoreLabel1.text = value
}
}
Я создал функцию, которая, хотя и работал бы ...
func high score () {
if gameMode == 0 {
if recordData == nil {
let savedString = scoreLabel.text
let userDefaults = Foundation.UserDefaults.standard
userDefaults.set(savedString, forKey: "Record")
} else {
let score: Int? = Int(scoreLabel.text!)
let record: Int? = Int(recordData)
if score! > record! {
let savedString = scoreLabel.text
let userDefaults = Foundation.UserDefaults.standard
userDefaults.set(savedString, forKey: "Record")
}
}
}
}