Magasin [String] NSUserDefaults

Je veux enregistrer un Swift de Style de Tableau de Chaîne en NSUserDefaults, mais acutally l'instruction "if" dans le code dit que returnValue est toujours nul.

Plus tard dans le code (iOS 8) je veux utiliser "nourriture += ["spaghetti"] pour ajouter de nouvelles entrées.

var food : [String] {
    get {
        var returnValue : [String]? = NSUserDefaults.standardUserDefaults().objectForKey("food") as? [String]
        if returnValue == nil      //Check for first run of app
        {
            returnValue = ["muesli", "banana"]; //Default value
        }
        return returnValue!
    }
    set (newValue) {
        NSUserDefaults.standardUserDefaults().setObject(newValue, forKey: "food")
        NSUserDefaults.standardUserDefaults().synchronize()
    }
}
  • j'ai essayé plusieurs choses de cette link mais il n'a pas la solution
  • il semble que votre problème est que vous ne jamais enregistrer ces valeurs dans les paramètres utilisateur, car l'ajout d'un nouvel élément dans le tableau ne prend pas en appel de l'incubateur. vous devez définir le réel food directement quelque part (par exemple,food = ["such", "and", "such"]) pour qu'il soit sauvé.
  • J'ai juste essayé votre code dans la dernière Xcode7 et Swift2.0, et c'est parfait.
  • C'est le meilleur exemple pour NSUserDefault : iosdevcenters.blogspot.com/2016/05/...
InformationsquelleAutor Thomas | 2014-08-21