2015-06-19 4 views
0

Я использую NSUserDefaults для отображения оценки от моего GameScene на моем resetViewController. Проблема в том, что если пользователь не забивает, он покажет игроку последний счет.Использование NSUserDefaults для отображения оценки

В GameScene

var score: Int = 0 
var scoreLabel = SKLabelNode() 
let defaults = NSUserDefaults.standardUserDefaults() 

score++ 
scoreLabel.text = "\(score)" 
defaults.setObject(scoreLabel.text, forKey: "scoring") 

В resetViewController

var score = defaults().stringForKey("scoring") 
YourScore.text = score 

Я уверен, что это что-то простое, но я не могу понять это

+0

Вам также нужны NSUserDefaults. Если вы показываете только текущие данные пользователю и перезагружаете предыдущие пьесы, вы можете просто сделать это с некоторыми свойствами в вашем контроллере просмотра или с использованием некоторых глобальных переменных. – Sandeep

ответ

1

Когда вам нужно набрать, чтобы сбросить , просто позвоните

NSUserDefaults.standardUserDefaults().setObject(nil, forKey: "scoring") 
+0

Спасибо, что это отлично работало для того, что мне нужно. –

0

removeObjectForKey: удаляет значение из NSUserDefaults. Вы также можете установить его на ноль. Или просто не используйте NSUserDefaults - нет смысла использовать его, если вам не нужно сохранять значение между перезапусками вашего приложения.

0

Я предлагаю сохранить целое число, а не строку. Таким образом, значение по умолчанию будет равно нулю, и вы можете легко сбросить счет, установив ключ на ноль.

NSUserdefaults.standardUserDefaults().IntegerForKey("score") 
NSUserdefaults.standardUserDefaults().setInteger(0, forKey: "score") 
Смежные вопросы