2015-05-19 2 views
-1

У меня есть забава с быстрым, и я пытаюсь сделать простую игру. У меня есть несколько переменных, которые меняются во время игры. Какова наилучшая практика для сохранения этих переменных, если applicationDidEnterBackground и для всех этих функций в appDelegate.Советы для разработки приложений iOS. ApplicationDidEnterBackground

Что я считаю хранить их в основных данных и загружать их, когда приложение запускается снова.

Кто-нибудь с опытом по этой теме?

+1

Это зависит от того, какие данные и их размеры. NSUserDefaults, Core-Data, Plist, Custom File и т. Д. – Larme

+1

Это зависит. По какой-то причине существует множество разных вариантов. И причина не в том, что одна считается лучшей практикой, а другие никогда не должны использоваться. – nhgrif

+0

У меня есть 5 переменных с одним значением каждый. Почти ничего – Starlord

ответ

1

Если его несколько переменных вы хотите сохранить и управлять, вы можете использовать NSUserDefaults.

// Create defaults 
    let defaults = NSUserDefaults.standardUserDefaults() 

    // Set an int for highScoreKey in our defaults 
    defaults.setInteger(10, forKey: "highScoreKey") 

    // Sync/Save the defaults we've changed 
    defaults.synchronize() 

    // Then to retrieve our highScoreKey default we've saved 
    // We create an int to store the value that is in our default 
    var highScoreInt = defaults.integerForKey("highScoreKey") 

    println(highScoreInt) 
    // Prints 10 

Я бы установить и сохранить эти значения, как только у меня есть значения, мне нужно, а не в applicationDidEnterBackground хотя.

NSUserDefaults Class Reference

+1

Спасибо! Похоже, NSUserDefaults отлично справится с тем, что я получил. – Starlord

0

Когда я начал с программированием IOS, я первый хранить данные в пользовательских текстовых файлов. Затем я сохранил массивы на диск, использовал NSUserDefaults и другие инструменты. В конце я решил переехать в CoreData, так как мне пришлось сохранять все больше и больше данных, и мое приложение становилось слишком медленным.

Оглядываясь назад, было бы намного лучше, если бы я использовал CoreData с самого начала. Он очень мощный, и переход на CoreData позже занимает много времени.

Если вы хотите использовать CoreData, я рекомендую начать с хорошего учебника или хорошей книги. Мне понравилась книга «Изучение CoreData для iOS» Тима Родли.

Интересной альтернативой может быть Realm. Я еще не использовал его, но, возможно, стоит посмотреть.

Однако это действительно зависит от вашего приложения. Если вам не нужно сохранять много данных, могут быть достаточно простые подходы (NSUserDefaults и т. Д.).

Осторожно: Apple рекомендует постоянно сохранять данные и не дожидаться, пока приложение войдет в фоновое состояние. В это время приложение может быть приостановлено в любое время, и вы не можете быть уверены, что ваши данные будут сохранены вовремя.

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