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/...
Vous devez vous connecter pour publier un commentaire.
Le code suivant devrait vous aider à résoudre votre problème:
Cependant, avec le code précédent, si vous définissez
food = []
, vous aurez un problème quefood
ne reviendra pas["muesli", "banana"]
. Afin d'éviter cela, vous pouvez préférer le code suivant:Comme indiqué dans le la documentation:
Cela signifie que vous avez besoin de convertir votre
String
objets àNSString
lors de l'enregistrement, quelque chose comme cela devrait fonctionner:Dans Swift 3.0
Magasin
Récupérer
Supprimer
Référence: NSUserdefault objectTypes
Définir et Obtenir NSUserDefault avec la fonction
Utiliser en dessous de la fonction à utiliser dans le monde , déclare dans une catégorie toute utilisation dans l'ensemble de l'application
Declaration
Comment appeler
//
//
//
appel de la Méthode