Enregistrer variable après mon appli se ferme (swift)
Je suis en train d'enregistrer une variable dans Xcode, de sorte qu'il enregistre même une fois l'application fermée, comment jamais, quand j'y accéder je le faire à partir de plusieurs classes différentes et des fichiers, et je change la valeur de la variable lorsque je y avoir accès. Donc similaires fils ne sont pas complètement s'applique, la valeur à stocker une chaîne de caractères et voici le code que j'ai jusqu'à maintenant:
var defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(Token, forKey: "") as! String
Je crois que c'est le bon format, mais je ne sais pas comment l'appeler parce que quand j'essaie, je reçois un message d'erreur disant prévu déclaration.
De toute façon toute aide serait très appréciée.
ce que le
Je pensais qu'il était nécessaire d'en faire une chaîne de caractères? Je suis un peu nouveau pour swift pour être honnête
as! String
?Je pensais qu'il était nécessaire d'en faire une chaîne de caractères? Je suis un peu nouveau pour swift pour être honnête
OriginalL'auteur lucas rodriguez | 2015-08-10
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous devez spécifier une clé unique pour stocker la variable (dans l'exemple
MyKey
).Dans
AppDelegate > applicationDidFinishLaunching
enregistrer la clé avec une valeur par défaut.L'avantage est que vous pouvez utiliser un non-variable en option et que vous avez défini la valeur par défaut.
Vous pouvez désormais de partout lire la valeur de la clé
et l'enregistrer
la lecture de la valeur, de le modifier et de l'écrire à partir d'où vous voulez. Normalement, la valeur est lue dans
viewDidLoad()
ouviewWillAppear()
de vue contrôleur dans une variable d'instance. Cette variable d'instance peut être changé et pourrait être écrit par exemple dansviewWillDisappear()
lorsque le contrôleur sera à gauche.sooo " laissez les valeurs par défaut = NSUserDefaults.standardUserDefaults() laissez token = par défaut.stringForKey(à l'échelle mondiale.jeton)' global jeton th nouvelle valeur?
exactement, mais si vous souhaitez modifier
token
utilisationvar token
. Veuillez également lire la documentation: developer.apple.com/library/mac/documentation/Cocoa/Conceptual/...et comment puis-je obtenir la valeur de retour lorsque l'application est de nouveau ouvert
OriginalL'auteur vadian
Swift 3
(grâce à vadian réponse)
Dans
AppDelegate > applicationDidFinishLaunching
:pour enregistrer une clé:
de lire une clé:
synchronize
. En fait, il peut être un problème de force. C'est expliqué dans la documentation et dans beaucoup de Questions et de Réponses. Exemple: codereview.stackexchange.com/a/87314/68030OriginalL'auteur Test
Disons que vous avez une variable chaîne de caractères appelée
token
Pour enregistrer/mettre à jour la valeur stockée sur l'appareil:
Dans le code ci-dessus, je fait en sorte de donner la clé de la valeur ("mytoken"). C'est ainsi que plus tard, on peut le trouver.
Pour lire la valeur stockée dans l'appareil:
Puisque la méthode
objectForKey
renvoie une optionAnyObject
, je ferai en sorte de le convertir en une optionString
(facultatif, en ce sens que c'est soit nul ou a une valeur).Vous ajoutez les deux lignes (setObject... et synchroniser...) n'importe où dans votre code lorsque vous souhaitez enregistrer le jeton de l'appareil, oui.
Vous n'avez pas besoin de synchroniser. En fait, il peut être un problème de force. C'est expliqué dans la documentation et dans beaucoup de Questions et de Réponses. Exemple: codereview.stackexchange.com/a/87314/68030
OriginalL'auteur Mattias
Ajouter
default.synchronize()
après la valeur de réglage.L'appel de
synchronize()
est inutile. Voir cette explication.OriginalL'auteur Yedidya Reiss