Cómo save los datos de inicio de session en mi aplicación iOS

Lo que quiero exactamente:

Tengo un sistema de inicio de session. Cada vez que el usuario inicia session en su count, la aplicación obtiene una ID única como respuesta json. Ahora lo que quiero hacer es usar este identificador en toda la aplicación, ya que el usuario accede a su perfil usando su identificación única y envía /rcvs posts a través de la misma identificación única.

Necesito llevar este id a través de la aplicación. Incluso cuando la aplicación se cuelga o se cierra. Una vez que el usuario vuelve a la aplicación, el usuario inicia session directamente sin mostrar la pantalla de inicio de session. Además, este ID se elimina o se vuelve nulo solo cuando el usuario hace clic en el button Cerrar session.

Este es mi código: http://www.pastie.org/3848543

Creo que debería usar uno de los siguientes:

  1. pList
  2. NSUserDefaults
  3. appDelegate

Puedes resolver esto usando nsuserdefaults ..

aquí hay un código de ejemplo:

 NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; if([standardUserDefaults objectForKey:@"your-key-goes-here"] == nil) [standardUserDefaults setBool:YES forKey:@"your-key-goes-here"]; 

puede verificar que su key exista como la anterior y cuando obtiene la respuesta puede configurarlo como se describe anteriormente pero, por supuesto, utilizando el método como:

 [standardUserDefaults setValue:@"your-value" forKey:@"your-key-goes-here"]; 

y finalmente deberías sincronizar los userdefaults como:

 [standardUserDefaults synchronize]; 

espero que esto ayude..

Ordene fr tarde y use NSDefaults para almacenar este id y la segunda opción es agregar una propiedad en el delegado de la aplicación y asignarle valut

Te recomendaría utilizar NSUserDefaults , y te sugeriste a ti mismo. Si lo guarda en cualquier file local (como un plist ), debe cifrar el file o los datos de inicio de session, ya que de lo contrario estaría claramente disponible para que nadie más los lea (por lo tanto, la security es baja).

Lo que quieres decir con el uso de la aplicaciónDelegate no estoy seguro, ya que la aplicaciónDelegate no es más que una class de delegado. Use podría hacer un método de delegado para autenticar al usuario, pero eso le devolvería a su pregunta inicial.

NSUserDefaults * standardUserDefaults = [NSUserDefaults standardUserDefaults]; if ([standardUserDefaults objectForKey: @ "key"] == nil) [standardUserDefaults setBool: YES forKey: @ "key"];

[standardUserDefaults setValue: @ "your-value" forKey: @ "key"];

[standardUserDefaults synchronize];

¿Me equivoco? Creo que este problema podría resolverse a través de cookies ¿ Establecer el id cuando el usuario inicia session y lo cambia cuando lo desea? Además, puede leer fácilmente la información en la cookie.