Le problème est que vous imprimez le contenu de UserDefaults, juste après les effacer, mais vous n'êtes pas manuellement les synchroniser.
let domain = Bundle.main.bundleIdentifier!
UserDefaults.standard.removePersistentDomain(forName: domain)
UserDefaults.standard.synchronize()
print(Array(UserDefaults.standard.dictionaryRepresentation().keys).count)
Cela devrait faire l'affaire.
Vous n'avez normalement pas besoin d'appeler manuellement synchronize
, car le système synchronise périodiquement les userDefaults automatiquement, mais si vous devez appuyer immédiatement sur les modifications, vous devez forcer la mise à jour via l'appel synchronize
.
The documentation states this
Parce que cette méthode est automatiquement appelée à intervalles réguliers, utiliser cette méthode que si vous ne pouvez pas attendre la synchronisation automatique (par exemple, si votre application est sur le point de quitter) ou si vous voulez mettre à jour les valeurs par défaut de l'utilisateur à ce qui est sur le disque même si vous n'avez fait aucune modification.
Vérifiez celui http://stackoverflow.com/questions/6797096/delete-all-keys-from-a-nsuserdefaults-dictionary-ios#6797133 –
@RyanPoolos J'ai essayé beaucoup de solutions, je reçois la même résultat '10' – Zizoo