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")
Swift 3+
UserDefaults.standard.removeObject(forKey: "KEY")
Obj-C
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"]; [[NSUserDefaults standardUserDefaults] synchronize];
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()