Cuando rootViewController
se cargue el de mi aplicación, quiero poder verificar si las credenciales de inicio de sesión de los usuarios se han guardado o no NSUserDefaults
.
Básicamente, cuando el usuario carga la aplicación y él / ella no tiene sus credenciales de inicio de sesión guardadas, se modalAlertView
enviará un y el usuario podrá guardar sus credenciales de manera apropiada. Esto guarda esas UITextField
cadenas en un NSUserDefault
objeto respectivo . Sin embargo, ¿es posible que cuando se realice este guardado, pueda crear un NSUserDefault
objeto que sea booleano y cambiar el valor a sí?
Lo que significa que el booleano ya está configurado en no, y cuando el usuario guarda sus credenciales de inicio de sesión, ¿también cambia el booleano a sí?
fuente
Hay un método en
NSUserDefaults
llamadoregisterDefaults:
. Utilice este método para establecer los "valores predeterminados predeterminados" de su aplicación. Básicamente, crea unNSDictionary
archivo que contiene sus claves y valores predeterminados (en su caso, un NO para una clave de "credenciales guardadas"), y lo registra usandoregisterDefaults:
. Esto se hace a menudo en el+ (void)initialize
método del delegado de la aplicación para garantizar que sus valores predeterminados se registren antes de que sean necesarios. Estos valores solo se utilizan si su aplicación no los ha reemplazado. En otras palabras, no se usarán a menos que la clave que está buscando no esté en el dominio de la aplicación, es decir, los valores predeterminados del usuario leídos del archivo .plist del usuario.Por otro lado, simplemente puede verificar las credenciales de inicio de sesión y mostrar una alerta si faltan. Esto elimina la necesidad de mantener su valor booleano sincronizado con las credenciales de inicio de sesión. Si más tarde proporciona la capacidad de "eliminar credenciales de inicio de sesión", no tendrá que recordar volver a establecer el booleano en NO. Si sus credenciales de inicio de sesión se guardan en los valores predeterminados del usuario, haría esto:
fuente
Esta solución, sugerida por Henrik P. Hessel:
funcionaría en su caso, pero tenga en cuenta que no debe verificar con este código si alguna clave está configurada, porque si realmente está configurada y configurada en "NO", aún obtendría un resultado como si no fuera establecer en absoluto. En su lugar, usaría
fuente
No es necesario que lo configure primero
NO
, en su lugar, puede verificar si se ha configurado una clave. De lo contrario, y si su aplicación determina que las credenciales están completas, simplemente créala y configúrela enYES
.Verifique mi respuesta a otra pregunta para ver cómo suelo hacer esto.
fuente
en Swift 3
alternativamente, podemos usar y
object(forKey:)
luego lanzarlo a boolfuente
Swift 2.3
Para almacenar valores
Para buscar valores
Swift 3.0
Para almacenar valores
para recuperar valores
fuente