Es decir, mi aplicación establece algunos valores predeterminados estándar al principio. Entonces, esos valores pueden ser anulados por el usuario. Y cuando el usuario estropea las cosas, quiero volver a establecer esa configuración en los valores predeterminados de mi aplicación. Según tengo entendido, los valores predeterminados de la aplicación son un diccionario diferente a los valores predeterminados del usuario, y los valores predeterminados del usuario simplemente anulan los valores predeterminados de la aplicación. Pero no he visto métodos para eliminar los valores predeterminados del usuario. ¿Alguna idea?
79
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults]; [removeUD removeObjectForKey:@"shoping"]; [[NSUserDefaults standardUserDefaults]synchronize ];
fuente
Versión rápida para copiar y pegar fácilmente:
var idForUserDefaults = "somestupidtext" var userDefaults = NSUserDefaults.standardUserDefaults() userDefaults.removeObjectForKey(idForUserDefaults) userDefaults.synchronize()
o
NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext") NSUserDefaults.standardUserDefaults().synchronize()
fuente
.synchronize()
"es innecesario y no debe utilizarse. Developer.apple.com/documentation/foundation/userdefaults/…Para eliminar un valor CLAVE específico:
Swift 3+
UserDefaults.standard.removeObject(forKey: "KEY")
Obj-C
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"]; [[NSUserDefaults standardUserDefaults] synchronize];
Si necesita restablecer los valores predeterminados de usuario / borrar todos los datos :
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier]; [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Swift 3:
if let bundle = Bundle.main.bundleIdentifier { UserDefaults.standard.removePersistentDomain(forName: bundle) }
fuente
Actualizado para el código Swift 3.0:
UserDefaults.standard.removeObject(forKey: "YOURKEY")
fuente
Value of type 'UserDefaults' has no member 'remove'
En Swift 4
UserDefaults.standard.removeObject(forKey: "your_key") UserDefaults.standard.synchronize()
fuente
Manera rápida
UserDefaults.standard.removeObject(forKey: "aKey") UserDefaults.standard.synchronize()
fuente