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 daña las cosas, quiero volver a establecer esas configuraciones en los valores predeterminados de mi aplicación. Según tengo entendido, los valores predeterminados de la aplicación son un diccionario diferente de 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?¿Cómo eliminar un valor predeterminado del usuario en NSUserDefaults?
Respuesta
Pruebe removeObjectForKey
- eso debería darle la posibilidad de eliminar una preferencia.
Usar este código
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];
No se olvide de sincronizar si desea guardar inmediatamente
[[NSUserDefaults standardUserDefaults] synchronize];
NSUserDefaults Class Reference
sincronizar - Este método se invoca automáticamente a intervalos periódicos , usa este método solo si no puedes espere la sincronización automática (por ejemplo, si su aplicación está a punto de salir) o si desea actualizar los valores predeterminados del usuario a lo que está en el disco aunque no haya realizado ningún cambio.
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults];
[removeUD removeObjectForKey:@"shoping"];
[[NSUserDefaults standardUserDefaults]synchronize ];
versión Swift para facilitar la copia pegar:
var idForUserDefaults = "somestupidtext"
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey(idForUserDefaults)
userDefaults.synchronize()
o
NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext")
NSUserDefaults.standardUserDefaults().synchronize()
Los documentos de Apple indican que '.synchronize()' "es innecesario y no debe utilizarse. Https://developer.apple.com/documentation/foundation/userdefaults/1414005-synchronize –
Actualización de Swift 3.0 código:
UserDefaults.standard.removeObject(forKey: "YOURKEY")
' El valor del tipo 'UserDefaults' tiene ningún miembro 'remove'' –
kbunarjo, ¿Has probado esto. LOL. Swift 3 -UserDefaults.standard.removeObject (forKey: "Key") – Jeff
@Jeff Recientemente lanzaron una versión más nueva de Swift 3 (3.1). todavía no he echado un vistazo a los documentos, así que supongo que es por eso que mi versión ya no funciona. – kbunarjo
Para quitar una clave específica v alor:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];
Si es necesario restablecer UserDefaults/Borrar todos los datas:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Swift 3:
if let bundle = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundle)
}
- 1. valor predeterminado del puntero.
- 2. ¿NSUserDefaults contiene valor o no?
- 3. ¿Cómo probar con NSUserDefaults?
- 4. python - devolviendo un valor predeterminado
- 5. ¿Anular valor predeterminado get_absolute_url en Objetos de usuario?
- 6. ¿Cómo eliminar el constructor predeterminado?
- 7. ¿Cómo puedo eliminar el valor que se registró previamente a través de [NSUserDefaults registerDefaults:] call
- 8. Hibernate valor predeterminado hbm2ddl.auto
- 9. cómo almacenar NSMutableArray en NSUserDefaults
- 10. Android - valor predeterminado en editText
- 11. iPhone App: ¿Cómo obtener el valor predeterminado de root.plist?
- 12. Obtener un valor de color 'predeterminado' de EditText del tema
- 13. NSKeyedArchiver/NSuserDefaults - guardar un CGRect
- 14. Valor predeterminado del Validador de ASP.Net
- 15. ¿Establecer el valor predeterminado en un DataContract?
- 16. Establecer git diff en un valor predeterminado
- 17. OpcionalAttribuir el valor predeterminado del parámetro?
- 18. Valor predeterminado para el usuario ForeignKey con administrador de Django
- 19. ¿Cómo asignar usuario actualmente conectado como valor predeterminado para un campo de modelo?
- 20. DateTimePicker Valor predeterminado: ¿Cómo evitarlo?
- 21. ¿es posible usar un lambda como valor predeterminado del diccionario?
- 22. NSNumber almacenado en NSUserDefaults
- 23. iPhone - Cómo detectar si existe una clave en NSUserDefaults standardUserDefaults
- 24. Cómo leer cadenas de NSUserDefaults
- 25. Eliminar ícono JFrame predeterminado
- 26. Asignar un valor predeterminado a un genérico
- 27. ¿Cómo registrar los valores predeterminados del usuario utilizando NSUserDefaults sin sobreescribir los valores existentes?
- 28. Cómo configuro un valor predeterminado de ComboBox de VB.Net
- 29. Restablecer la interfaz de usuario de IntelliJ al valor predeterminado
- 30. ¿Cómo compruebo si BOOL existe en la configuración de usuario NSUserDefaults?
+1 para [[NSUserDefaults standardUserDefaults] sincronizar]; Por lo general, me olvido de agregar esto. – Augustine
@Augustine:) gracias :) – Rajneesh071
si no sincroniza, lo sincronizará automáticamente cuando cierre su aplicación. –