2016-10-30 9 views
1

Я пытаюсь сохранить целое число «highScore», которое сохраняется после закрытия приложения с помощью SpriteKit.Swift 3.0 сохранить счет с помощью SpriteKit

Все. Просто одно целое на одном экране, которое я в конечном итоге установил в своей игре независимо от того, будет ли новый балл выше, чем сохраненный результат.

Я понимаю, что для этого существует много вариантов для stackoverflow, однако все они для версий Swift меньше 3.0. Они используют кучу методов и встроенных функций, которые я не понимаю как новичок. После попытки конвертировать все эти параметры в Swift 3.0 и неудачно, я надеюсь, что кто-то может показать мне пример кода, как это сделать.

Буду рад ответить на любые дополнительные вопросы.

ответ

3

Для этой цели вы можете использовать класс UserDefaults.

Если у вас есть какой-либо GameManager одноточечного, вы можете определить расчетную переменную, которая сохраняет и считывает из UserDefaults:

var highScore: Int { 
    get { 
     return UserDefaults.standard.integer(forKey: "highScore") 
    } 
    set { 
     UserDefaults.standard.set(newValue, forKey: "highScore") 
    } 
} 
+0

Существует 'целое (forKey:' и соответствующий метод сеттер, который работает не опциональным – vadian

+0

@vadian Спасибо, вы правы. Обновлен ответ – alexburtnik

+0

Кроме того, нет необходимости синхронизировать каждый раз. UserDefaults будет делать это автоматически перед закрытием приложения и с разными интервалами. Принудительная синхронизация может повлиять на производительность, если переменная считывается много, один раз за кадр, например. – EmilioPelaez

Смежные вопросы