Dans mon application, je sauvegarde une clé en utilisant ce code:
func saveKey(){
var xmineSpillere = mineSpillere
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(xmineSpillere, forKey: "YourKey")
}
Mais comment puis-je vérifier si la clé existe? Je veux le code quelque chose comme ça:
if key("YourKey") exists {
println("key exists")
}
else {
println("does not exist")
}
Comment puis-je faire quelque chose comme ça dans Swift?
Tout d'abord, chaque fois que vous enregistrez une variable dans NSUserDefaults
, vous devez appeler la méthode synchronize()
pour écrire les modifications apportées aux domaines persistants sur le disque et mettre à jour tous les domaines persistants non modifiés sur ce qui est sur le disque.
func saveKey(){
var xmineSpillere = mineSpillere
var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(xmineSpillere, forKey: "YourKey")
defaults.synchronize()
}
La méthode
synchronize
est automatiquement appelée à intervalles réguliers. Utilisez cette méthode uniquement si vous ne pouvez pas attendre la synchronisation automatique (par exemple, si votre application est sur le point de quitter) ou si vous souhaitez mettre à jour les valeurs utilisateur par défaut sur ce qui est sur le disque, même si vous n'avez apporté aucun changement.
Ensuite, vous pouvez atteindre n'importe quelle valeur de la manière suivante:
if let key = NSUserDefaults.standardUserDefaults().objectForKey("YourKey"){
// exist
}
else {
// not exist
}
J'espère que cela vous aidera.
Découvert moi-même, code:
if (NSUserDefaults.standardUserDefaults().objectForKey("YourKey") != nil) {
println("key exist")
}
Ajouter cette extension à UserDefaults
aidera:
extension UserDefaults {
func contains(key: String) -> Bool {
return UserDefaults.standard.object(forKey: key) != nil
}
}
Vous pouvez vérifier si votre clé existe avec:
if UserDefaults.contains(key: "YourKey") {
print("Key exist")
} else {
print("Does not exist")
}
Swift 3+
if let key = UserDefaults.standard.object(forKey: "Key"){
// exist
} else {
// not exist
}