Swift - Comment définir la valeur initiale pour NSUserDefaults
J'ai un interrupteur appelé soundSwitch, je suis à l'enregistrement de l'état du bouton à l'aide d'un utilisateur par défaut en tant que tel:
@IBAction func soundsChanged(sender: AnyObject) {
if soundSwitch.on{
defaults.setBool(true, forKey: "SoundActive")
print("Sound ON")
}else{
defaults.setBool(false, forKey: "SoundActive")
print("Sound OFF")
}
}
Actuellement la réelle valeur par défaut est d'abord faux lorsque l'utilisateur lance l'application.
Comment puis-je mettre en œuvre les valeurs par défaut à true si l'utilisateur est le premier lancement de l'application et qu'ils n'ont pas encore été configuré.
J'ai vu des méthodes en Objective-C, mais rien à Swift. De ce que j'ai vu, vous pouvez le faire dans l'application délégué d'une façon, ou dans un fichier plist. Comment dois-je faire, soit de ceux-là?
source d'informationauteur Big Green Alligator
Vous devez vous connecter pour publier un commentaire.
Swift 3 exemple de syntaxe
Enregistrer un boolean valeur par défaut:
Et à obtenir la valeur:
Note: Bien que le code ci-dessus renvoie true, notez que la valeur n'est pas écrit sur le disque jusqu'à ce que vous ensemble:
À l'aide de "registerDefaults", vous pouvez définir la valeur par Défaut de NSUserDefaults
Note: écrire didFinishLaunchingWithOptions, de sorte que la valeur par défaut est défini.
écrire ci-dessous de code où vous voulez vérifier
Il n'y a rien de swift ou délégué d'application spécifiques.
Initial des valeurs par défaut sont définies par l'appel de
registerDefaults:
sur lestandardUserDefaults
instance.Vous pouvez faire appel à plusieurs reprises et je vous recommande de ne pas le faire dans l'application délégué, au lieu enregistrer les détails appropriés au moment approprié dans l'application, donc si vous avez 1-vue-contrôleur /sous-système qui utilise certaines valeurs de paramètres par défaut, puis de l'enregistrer les valeurs par défaut dans le cadre de l'initialisation si ce code.
Uniquement si vous avez quelque chose qui est utilisé par plusieurs différentes parties du code devriez-vous envisager de le faire dans l'application délégué, et alors seulement si vous n'avez pas un autre contrôleur approprié pour le faire.
Ajouter à votre
didFinishLaunchingWithOptions
méthode de l'AppDelegate. Comme certains d'autres ont souligné essayez de ne pas abuser par le fait de tout mettre dans cette méthode.Je pense que c'est la meilleure façon de l'utiliser. Aussi
register(defaults:)
aidera, mais dans la documentation d'Apple suggèrent de l'utiliser commefallback
comme la séparation de la situation deno value
etdefault value
. Dépendra de votre besoin.Si vous voulez vraiment faire de cette façon, l'AppDelegate:
Si elle est utilisée dans l'un viewcontroller, envisager de mettre le code dans la méthode viewDidLoad la place!
Le mettez dans votre "didFinishLaunchingWithOptions" dans votre AppDelegate.
Ensemble et avoir le son activé.
Ensemble bool valeur par
vérifier bool valeur par