Ich bin neu zu swift, und ich versuche ein Spiel zu bauen, das einen Top 5 Spieler Namen und Punktzahl enthält, wenn ich nur die Spieler zu einem Array hinzufügen und neu starten das Spiel es „löscht“ die Spieler, so versuche ich, NSUserDefaults zu verwenden (i nur 5 Saiten und 5 ganze Zahlen speichern müssen), ist es nicht funktionieren, egal was, der Code:Verwenden von NSUserDefaults, um ein Array von Objekten zu speichern
class scoreController: UITableViewController {
var playersArray:[Player] = [Player]()
var nameFromGame = "" //name from game vc
var timeFromGame = 0 //time from game vc
let tmpPlayer = Player(playerName: "", scoreTime: 0)
let playerDefaults = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
super.viewDidLoad()
let player1 = Player(playerName: "Bil", scoreTime: 50)
let player2 = Player(playerName: "Bob", scoreTime: 100)
playersArray.append(player1)
playersArray.append(player2)
tmpPlayer.playerName = nameFromGame
tmpPlayer.scoreTime = timeFromGame
playersArray.append(tmpPlayer)
playerDefaults.setObject(playersArray[11], forKey: "players")
print(playersArray)
}
}
I Ich versuche nur, das für jetzt zu speichern und es stürzt ab, weiß jemand warum? Und wie kann ich das in meiner App speichern, damit die Daten gespeichert werden?
danke!
versucht, dass es sagt: erwartete Erklärung – Coder123
Nein, die Sie nicht brauchen, das Verfahren in regelmäßigen Abständen durch das Betriebssystem aufgerufen wird. – vadian
Wenn er jedoch wird die Standardwerte bald nach dem Setzen sie den Zugriff, sollte er nach dem Wechsel synchronisieren. Außerdem gibt es immer die Chance, dass der App zum Absturz bringen könnte oder durch den Benutzer gestoppt werden, wobei in diesem Fall einer Zeit-Synchronisation nicht auftreten kann. – milesper