Comment supprimer une valeur utilisateur par défaut dans NSUserDefaults?

Par exemple, mon application définit certaines valeurs standard par défaut au début. Ces valeurs peuvent alors être remplacées par l’utilisateur. Et lorsque l’utilisateur fait des erreurs, je souhaite redéfinir ces parameters sur les valeurs par défaut de mon application. Si je comprends bien, les valeurs par défaut de l’application sont différentes des valeurs par défaut de l’utilisateur, et les valeurs par défaut de l’utilisateur remplacent celles par défaut. Mais je n’ai pas vu de méthodes pour supprimer les valeurs par défaut de l’utilisateur. Une idée?

Essayez removeObjectForKey – cela devrait vous permettre de supprimer une préférence.

Utilisez ce code

 [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"]; 

N’oubliez pas de synchroniser si vous souhaitez enregistrer immédiatement

 [[NSUserDefaults standardUserDefaults] synchronize]; 

Référence de la classe NSUserDefaults

synchroniser – Cette méthode est appelée automatiquement à 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 sharepoint sortir) ou si vous souhaitez mettre à jour l’utilisateur par défaut bien que vous n’ayez apporté aucune modification.

 NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults]; [removeUD removeObjectForKey:@"shoping"]; [[NSUserDefaults standardUserDefaults]synchronize ]; 

Version rapide pour un copier-coller facile:

 var idForUserDefaults = "somestupidtext" var userDefaults = NSUserDefaults.standardUserDefaults() userDefaults.removeObjectForKey(idForUserDefaults) userDefaults.synchronize() 

ou

 NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext") NSUserDefaults.standardUserDefaults().synchronize() 

Mis à jour pour le code Swift 3.0:

UserDefaults.standard.removeObject(forKey: "YOURKEY")

Pour supprimer une valeur de clé spécifique:

Swift 3+

 UserDefaults.standard.removeObject(forKey: "KEY") 

Obj-C

 [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"]; [[NSUserDefaults standardUserDefaults] synchronize]; 

Si vous devez réinitialiser UserDefaults / Clear All datas :

 NSSsortingng *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain]; 

Swift 3:

 if let bundle = Bundle.main.bundleIdentifier { UserDefaults.standard.removePersistentDomain(forName: bundle) } 

Dans Swift 4

  UserDefaults.standard.removeObject(forKey: "your_key") UserDefaults.standard.synchronize() 

Moyen rapide

 UserDefaults.standard.removeObject(forKey: "aKey") UserDefaults.standard.synchronize()